Function at 0x1004c930
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x48
push ebx
mov ebx, dword [esp + 0x54]
push ebp
push esi
mov esi, dword [esp + 0x58]
mov eax, dword [esi]
push edi
xor edi, edi
cmp dword [esp + 0x74], edi
mov dword [esp + 0x30], eax
mov eax, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], edi
mov byte [esp + 0x13], 0
mov dword [esp + 0x3c], 0xffffffff
setne byte [esp + 0x12]
call fcn.10017ea0
test byte [ebx + 0x2a], 0x20
movsx edx, word [ebx + 0x22]
mov ebp, eax
mov dword [esp + 0x50], edx
jne 0x1004c98e
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], 1
jmp 0x1004c9a1
mov eax, ebx
call fcn.1000a180
movzx ecx, word [eax + 0x2e]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], ecx
xor eax, eax
cmp edx, edi
mov dword [esp + 0x18], eax
jle 0x1004cad3
mov dword [esp + 0x24], edi
jmp 0x1004c9b9
mov esi, dword [esp + 0x5c]
movsx edx, word [ebx + 0x20]
cmp eax, edx
je 0x1004cabb
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x24]
movzx edi, byte [eax + ecx + 0x14]
add eax, ecx
test edi, edi
je 0x1004cabb
mov cl, byte [esp + 0x7c]
cmp cl, 0xa
je 0x1004c9e9
movzx edi, cl
jmp 0x1004c9ee
cmp edi, 0xa
je 0x1004c9f9
cmp edi, 5
jne 0x1004c9fe
cmp dword [eax + 4], 0
jne 0x1004c9fe
mov edi, 2
lea eax, [edi - 1]
cmp eax, 3
ja case.default.0x1004ca06
jmp dword [eax*4 + 0x1004d268]
mov ecx, esi
call fcn.1000a630
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + eax]
mov edx, dword [ebx]
mov esi, dword [esp + 0x30]
push ecx
push edx
push str._s._s
call fcn.1001d320
mov ecx, dword [esp + 0x7c]
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x2c]
push 0x513
lea eax, [eax + ecx + 1]
push 0x15
push ebp
mov ecx, edi
call fcn.10015ec0
add esp, 0x20
mov dl, 1
mov eax, ebp
call fcn.100079b0
jmp 0x1004cabb
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
lea ecx, [edx + eax + 1]
mov eax, dword [esp + 0x80]
push 0x4c
mov esi, ebp
call fcn.10011470
add esp, 4
jmp 0x1004cabb
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x70]
lea edi, [ecx + edx + 1]
mov eax, edi
mov ecx, 0x4d
mov esi, ebp
call fcn.10011460
mov ecx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [ebx + 4]
mov edx, dword [eax + ecx + 4]
mov eax, dword [esp + 0x5c]
push edi
push edx
push eax
call fcn.1004c470
push esi
mov esi, ebp
call fcn.100079d0
add esp, 0x10
mov eax, dword [esp + 0x18]
add dword [esp + 0x24], 0x18
inc eax
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x18], eax
jl 0x1004c9b5
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1004cbd1
mov ecx, dword [esp + 0x30]
test dword [ecx + 0x18], 0x2000
jne 0x1004cbd1
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x5c]
inc edx
mov dword [eax + 0x5c], edx
mov al, byte [esp + 0x7c]
movzx edi, al
cmp al, 0xa
jne 0x1004cb0f
mov edi, 2
mov ecx, dword [esp + 0x2c]
cmp dword [ecx], 0
mov dword [esp + 0x18], 0
jle 0x1004cbd1
mov dword [esp + 0x28], 0
lea esp, [esp]
mov eax, ebp
call fcn.10011490
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
push 0x10
push eax
mov dword [esp + 0x58], eax
mov eax, dword [edx + 4]
mov ecx, dword [esi + eax]
mov edx, dword [esp + 0x64]
push ecx
push edx
call fcn.10047a60
add esp, 0x10
cmp edi, 4
jne 0x1004cb76
mov eax, dword [esp + 0x80]
push 0xe
xor ecx, ecx
mov esi, ebp
call fcn.10011470
add esp, 4
jmp 0x1004cba8
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + ecx + 4]
test eax, eax
jne 0x1004cb87
mov eax, dword [ebx]
cmp edi, 5
jne 0x1004cb91
mov edi, 2
mov edx, dword [esp + 0x5c]
push 3
push 0
push eax
push 0x113
push edx
call fcn.1001a600
add esp, 0x14
mov eax, dword [esp + 0x50]
push eax
mov ecx, ebp
call fcn.10007900
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x2c], 0x18
inc eax
add esp, 4
cmp eax, dword [ecx]
mov dword [esp + 0x18], eax
jl 0x1004cb30
cmp byte [esp + 0x78], 0
je 0x1004cd96
cmp dword [esp + 0x14], 0
jne 0x1004cd96
mov eax, ebp
call fcn.10011490
movzx edi, byte [ebx + 0x2b]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x7c]
cmp al, 0xa
je 0x1004cc03
movzx edi, al
jmp 0x1004cc0d
cmp edi, 0xa
jne 0x1004cc0d
mov edi, 2
cmp byte [esp + 0x12], 0
je 0x1004cc3c
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x70]
push edx
push eax
push ecx
push 0x4f
mov esi, ebp
call fcn.100113f0
add esp, 0x10
mov dl, 0x90
mov eax, ebp
call fcn.100079b0
mov al, byte [esp + 0x7c]
cmp edi, 5
jne 0x1004cc76
cmp al, 5
je 0x1004cc76
mov eax, dword [ebx + 8]
test eax, eax
je 0x1004cc76
lea esp, [esp]
mov cl, byte [eax + 0x32]
cmp cl, 4
je 0x1004cc66
cmp cl, 3
je 0x1004cc66
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x1004cc50
jmp 0x1004cc76
mov eax, 0xe
mov esi, ebp
call fcn.10011450
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
push edx
push eax
push ecx
push 0x49
mov esi, ebp
call fcn.100113f0
lea eax, [edi - 1]
add esp, 0x10
cmp eax, 4
ja case.default.0x1004cc9d
jmp dword [eax*4 + 0x1004d278]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
xor edi, edi
test dword [edx + 0x18], 0x40000
je 0x1004cccd
push edi
push edi
push 0x6d
mov edx, ebx
mov eax, esi
call fcn.1000b870
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x1004cd0d
push 0
push ebx
xor ecx, ecx
mov eax, esi
call fcn.1000ada0
add esp, 8
test eax, eax
jne 0x1004cd0d
cmp dword [ebx + 8], eax
je 0x1004cd36
mov ecx, esi
call fcn.1000a610
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push 0
push eax
push ecx
push esi
mov eax, ebx
call fcn.10031ba0
add esp, 0x10
mov dword [esp + 0x38], 1
jmp 0x1004cd66
mov ecx, esi
call fcn.1000a610
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push 1
push 5
push 0
push 1
push edx
push eax
push ecx
push edi
push ebx
push esi
call fcn.1004fb50
add esp, 0x28
mov dword [esp + 0x38], 1
jmp 0x1004cd66
mov eax, dword [esp + 0x80]
push 0xe
xor ecx, ecx
call fcn.10011470
jmp 0x1004cd63
mov edi, 2
mov ecx, dword [esp + 0x5c]
push edi
mov eax, ebx
call fcn.10021180
add esp, 4
mov edx, dword [esp + 0x2c]
push edx
mov ecx, ebp
call fcn.10007900
mov edi, dword [esp + 0x48]
add esp, 4
test edi, edi
je 0x1004cd96
mov eax, 0xe
mov esi, ebp
call fcn.10011450
push edi
mov dword [esp + 0x58], eax
call fcn.100079d0
add esp, 4
mov eax, ebx
mov ebx, dword [eax + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x1004d21c
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
jmp 0x1004cdc0
mov eax, dword [esp + 0x2c]
cmp dword [eax], 0
je 0x1004d200
cmp byte [esp + 0x13], 0
jne 0x1004cdec
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x60]
inc ecx
push ecx
push ebp
call fcn.10017c50
add esp, 8
mov byte [esp + 0x13], 1
mov eax, ebp
call fcn.10011490
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x1c], eax
je 0x1004ce36
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
push 0x1a
xor ecx, ecx
mov esi, ebp
call fcn.10011470
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
inc eax
push 0x10
push ecx
mov dword [edi + 0x5c], eax
mov eax, dword [ebx + 0x24]
push edi
call fcn.1001a110
add esp, 0x10
mov dword [edi + 0x5c], 0
jmp 0x1004ce3a
mov edi, dword [esp + 0x5c]
movzx esi, word [ebx + 0x30]
mov ecx, edi
call fcn.10009dc0
xor edx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], 0
cmp dx, word [ebx + 0x30]
jae 0x1004cebd
mov ecx, dword [esp + 0x18]
mov edi, eax
nop
mov eax, dword [ebx + 4]
movsx eax, word [eax + ecx*2]
test eax, eax
jl 0x1004ce81
mov edx, dword [esp + 0x60]
movsx edx, word [edx + 0x20]
cmp eax, edx
je 0x1004ce81
mov ecx, dword [esp + 0x70]
lea ecx, [eax + ecx + 1]
jmp 0x1004ce9d
cmp dword [esp + 0x3c], edi
je 0x1004ceaf
cmp dword [ebx + 0x24], 0
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x3c], 0xffffffff
jne 0x1004ce9d
mov dword [esp + 0x3c], edi
push 0x20
mov eax, edi
mov esi, ebp
call fcn.10011470
mov ecx, dword [esp + 0x1c]
add esp, 4
movzx edx, word [ebx + 0x30]
inc ecx
inc edi
cmp ecx, edx
mov dword [esp + 0x18], ecx
jl 0x1004ce60
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
movzx edx, word [ebx + 0x30]
mov edi, dword [esp + 0x24]
push ecx
push edx
push edi
push 0x31
mov esi, ebp
call fcn.100113f0
movzx ecx, word [ebx + 0x30]
mov eax, dword [esp + 0x6c]
add esp, 0x10
call fcn.10009bf0
cmp byte [esp + 0x12], 0
je 0x1004cf0f
cmp dword [esp + 0x14], ebx
jne 0x1004cf0f
cmp byte [esp + 0x78], 0
jne 0x1004cf0f
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebp
call fcn.10007900
add esp, 4
jmp 0x1004d200
movzx edi, byte [ebx + 0x32]
mov dword [esp + 0x40], edi
test edi, edi
jne 0x1004cf3c
movzx esi, word [ebx + 0x30]
mov ecx, dword [esp + 0x24]
call fcn.10009df0
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, ebp
call fcn.10007900
add esp, 4
jmp 0x1004d200
mov al, byte [esp + 0x7c]
cmp al, 0xa
je 0x1004cf49
movzx edi, al
jmp 0x1004cf53
cmp edi, 0xa
jne 0x1004cf57
mov edi, 2
mov dword [esp + 0x40], edi
movzx edx, word [ebx + 0x2e]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push 0x44
push ebp
mov eax, esi
call fcn.10015fa0
add esp, 0x10
cmp ebx, dword [esp + 0x14]
jne 0x1004cf82
mov dword [esp + 0x18], esi
jmp 0x1004cf93
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
call fcn.10009dc0
mov dword [esp + 0x18], eax
cmp byte [esp + 0x12], 0
jne 0x1004cfa7
cmp edi, 5
jne 0x1004d111
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
test byte [ecx + 0x2a], 0x20
jne 0x1004cff7
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push 0x71
mov esi, ebp
call fcn.10011470
add esp, 4
cmp byte [esp + 0x12], 0
je 0x1004d111
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push edx
push eax
push ecx
push 0x4f
call fcn.100113f0
add esp, 0x10
mov dl, 0x90
mov eax, ebp
call fcn.100079b0
jmp 0x1004d111
cmp ebx, dword [esp + 0x14]
je 0x1004d04b
mov eax, dword [esp + 0x14]
xor edx, edx
xor edi, edi
cmp dx, word [eax + 0x2e]
jae 0x1004d04b
jmp 0x1004d010
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov si, word [eax + edi*2]
add ecx, edi
push ecx
mov edx, ebx
call fcn.1000a1a0
mov edx, dword [esp + 0x2c]
movsx ecx, ax
push ecx
push edx
push 0x2f
mov esi, ebp
call fcn.100113f0
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x2e]
inc edi
add esp, 0x10
cmp edi, ecx
jl 0x1004d010
cmp byte [esp + 0x12], 0
je 0x1004d111
mov edx, dword [esp + 0x14]
movzx ecx, word [edx + 0x2e]
mov eax, ebp
call fcn.10007940
add eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x34]
and dl, 3
mov dword [esp + 0x4c], 0x4e
cmp dl, 2
jne 0x1004d08c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], eax
jmp 0x1004d094
mov edx, dword [esp + 0x18]
mov dword [esp + 0x48], edx
xor ebx, ebx
test ecx, ecx
jle 0x1004d111
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov esi, dword [ecx + ebx*4]
mov edi, dword [esp + 0x5c]
call fcn.1002bd00
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
movzx edx, word [edx + 0x2e]
movsx ecx, word [ecx + ebx*2]
dec edx
cmp ebx, edx
jne 0x1004d0d7
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], 0x4f
mov edx, dword [esp + 0x74]
push 0xfffffffffffffffc
push eax
mov eax, dword [esp + 0x50]
lea ecx, [edx + ecx + 1]
mov edx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
add eax, ebx
push ebp
call fcn.10015ec0
add esp, 0x14
mov dl, 0x90
mov eax, ebp
call fcn.100079b0
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 0x2e]
inc ebx
cmp ebx, ecx
jl 0x1004d0a0
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x1004d156
cmp eax, 3
jle 0x1004d141
cmp eax, 4
jne 0x1004d156
mov eax, dword [esp + 0x80]
push 0xe
xor ecx, ecx
mov esi, ebp
call fcn.10011470
mov edi, dword [esp + 0x60]
add esp, 4
jmp 0x1004d1c5
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
push edx
push eax
push edi
call fcn.1001a660
add esp, 0xc
jmp 0x1004d1c5
mov edi, dword [esp + 0x5c]
mov ecx, edi
xor edx, edx
call fcn.1000a610
mov eax, dword [esp + 0x30]
test dword [eax + 0x18], 0x40000
je 0x1004d184
push edx
push edx
mov edx, dword [esp + 0x68]
push 0x6d
mov eax, edi
call fcn.1000b870
add esp, 0xc
mov edx, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x14]
sete al
movzx ecx, al
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x1c]
push 5
push 0
push eax
mov eax, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
push eax
push ecx
push edx
mov edx, dword [esp + 0x80]
push edx
push edi
call fcn.1004fb50
add esp, 0x28
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebp
call fcn.10007900
mov ecx, dword [esp + 0x24]
movzx esi, word [ecx + 0x30]
mov ebx, dword [esp + 0x28]
add esp, 4
mov ecx, ebx
mov eax, edi
call fcn.10009df0
cmp dword [esp + 0x18], ebx
je 0x1004d200
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
call fcn.10009df0
mov edx, dword [esp + 0x20]
mov ebx, dword [edx + 0x14]
inc dword [esp + 0x28]
add dword [esp + 0x2c], 4
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x1004cdc0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1004d252
inc eax
push 0xe
xor ecx, ecx
mov esi, ebp
call fcn.10011470
mov eax, dword [esp + 0x58]
push eax
call fcn.100079d0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x8c]
add esp, 8
pop edi
pop esi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0x48
ret
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x48
ret