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

Disassembly:
sub esp, 0xcc
mov eax, dword [0x50a0b0]
xor eax, esp
mov dword [esp + 0xc8], eax
mov edx, dword [esp + 0xd0]
xor ecx, ecx
mov eax, dword [esp + 0xd8]
mov dword [esp + 8], eax
push ebx
mov eax, dword [edx]
xor ebx, ebx
push ebp
mov ebp, dword [esp + 0xdc]
push esi
mov eax, dword [eax]
mov esi, dword [edx + 0xc]
push edi
xor edi, edi
mov dword [esp + 0x34], edx
mov eax, dword [eax]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ecx
cmp byte [eax + 0x41], cl
je 0x48e8c5
lea eax, [ebx + 7]
jmp 0x48eea9
test byte [esi + 0x24], 0x20
mov edi, dword [esp + 0x18]
je 0x48e8d6
mov edx, 0x18
jmp 0x48e8eb
cmp dword [edi + 0x28], ecx
jle 0x48e8e6
test byte [ebp + 0x24], 8
mov edx, 0xbf
je 0x48e8eb
mov edx, 0x3f
movzx ecx, word [esi + 0x18]
mov eax, dword [edi + 4]
push edi
movsx ebp, word [eax + ecx*2]
mov ecx, edx
mov eax, dword [edi + 0x34]
and ecx, 0xffffffc3
and al, 4
mov dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x20]
cmove ecx, edx
push ecx
push ebp
push dword [eax + 0x30]
mov eax, dword [esp + 0x44]
push dword [eax + 4]
lea eax, [esp + 0x7c]
push eax
call fcn.004917d0
mov ebp, eax
add esp, 0x18
movzx eax, word [esi + 0x18]
mov dword [esp + 0x3c], eax
movzx eax, word [esi + 0x2a]
mov dword [esp + 0x54], eax
movzx eax, word [esi + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x50], eax
movzx eax, word [esi + 0x16]
mov ecx, eax
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x64], ecx
mov word [esi + 0x12], ax
mov eax, dword [edi + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x60], ecx
cmp cx, 0xa
jg 0x48e97f
mov dword [esp + 0x48], ebx
jmp 0x48e996
cwde
cdq
push edx
push eax
call fcn.00461980
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xec]
mov edi, 0x100
mov dword [esp + 0x24], eax
test ebp, ebp
je 0x48edb1
movzx edx, word [ebp + 0x12]
mov eax, 0x80
mov ecx, edx
mov dword [esp + 0x44], ecx
cmp cx, ax
jne 0x48e9e6
mov ecx, dword [esp + 0x28]
test ecx, ecx
js 0x48ed94
mov eax, dword [esp + 0x1c]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
jne 0x48ed94
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x48ed94
test word [ebp + 0x14], di
je 0x48ea09
cmp edx, 0x10
je 0x48ed94
mov eax, dword [esp + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x2c]
mov word [esi + 0x28], ax
movzx eax, ax
inc eax
push eax
push esi
push dword [esp + 0x38]
call fcn.00490190
add esp, 0xc
test eax, eax
jne 0x48edb1
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], ebp
mov ax, word [esi + 0x28]
mov ebx, dword [esi + 0x24]
inc ax
movzx ecx, ax
mov dword [esp + 0x58], ecx
movzx ecx, ax
mov word [esi + 0x28], ax
or edx, dword [ebp + 0x24]
or edi, dword [ebp + 0x20]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x5c], ecx
not eax
mov ecx, dword [esi + 8]
and edx, eax
mov eax, dword [esp + 0x44]
not ecx
and edi, ecx
mov dword [esi + 4], edx
mov dword [esi], edi
test al, 1
je 0x48ead6
mov eax, dword [ebp]
or ebx, 4
mov dword [esi + 0x24], ebx
test dword [eax + 4], 0x800
je 0x48eaab
mov edx, dword [esp + 0x14]
mov eax, 0x2e
movzx eax, ax
jmp 0x48ebcd
mov ecx, dword [eax + 0x14]
xor eax, eax
test ecx, ecx
je 0x48eaca
mov ecx, dword [ecx]
test ecx, ecx
je 0x48eaca
mov eax, ecx
cdq
push edx
push eax
call fcn.00461980
add esp, 8
movzx eax, ax
mov edx, dword [esp + 0x14]
movzx eax, ax
jmp 0x48ebcd
test al, 2
je 0x48eb34
mov edx, ebx
or ebx, 1
cmp dword [esp + 0x28], 0
mov edi, ebx
mov dword [esi + 0x24], ebx
jl 0x48eb20
cmp word [esp + 0x24], 0
jne 0x48eb2b
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 0x2e]
movzx eax, word [esi + 0x18]
dec ecx
cmp eax, ecx
jne 0x48eb2b
mov eax, dword [esp + 0x18]
test byte [eax + 0x34], 8
jne 0x48eb20
mov edx, dword [esp + 0x14]
or ebx, 0x10000
mov dword [esi + 0x24], ebx
jmp 0x48ebcb
mov ebx, edx
or ebx, 0x1001
mov dword [esi + 0x24], ebx
mov edx, dword [esp + 0x14]
jmp 0x48ebcb
test al, al
jns 0x48eb47
mov edx, dword [esp + 0x14]
or ebx, 8
mov dword [esi + 0x24], ebx
jmp 0x48ebcb
test al, 0x24
je 0x48eba6
or ebx, 0x22
mov dword [esp + 0x14], ebp
xor edi, edi
mov dword [esi + 0x24], ebx
mov eax, 0x100
mov dword [esp + 0x20], edi
test word [ebp + 0x14], ax
je 0x48eba0
mov eax, dword [esp + 0x58]
lea edi, [ebp + 0x30]
movzx eax, ax
inc eax
mov dword [esp + 0x20], edi
push eax
push esi
push dword [esp + 0x38]
call fcn.00490190
add esp, 0xc
test eax, eax
jne 0x48edad
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], edi
inc word [esi + 0x28]
or dword [esi + 0x24], 0x10
mov ebx, dword [esi + 0x24]
mov edx, dword [esp + 0x14]
jmp 0x48ebcb
or ebx, 0x12
mov dword [esp + 0x20], ebp
mov dword [esi + 0x24], ebx
test bl, 0x20
je 0x48ebc5
mov eax, dword [esp + 0x5c]
movzx ecx, ax
mov eax, dword [esi + 0x30]
mov edx, dword [eax + ecx*4 - 8]
jmp 0x48ebc7
xor edx, edx
mov dword [esp + 0x14], edx
xor eax, eax
mov dword [esp + 0x10], eax
movzx ecx, ax
test bl, 2
je 0x48ec6d
movzx eax, word [esi + 0x16]
movsx edi, ax
test edx, edx
je 0x48ebf8
movzx ecx, word [edx + 0x10]
test cx, cx
jg 0x48ebf5
add eax, ecx
jmp 0x48ebf8
sub eax, 0x14
mov ebp, dword [esp + 0x20]
movzx ecx, ax
test ebp, ebp
je 0x48ec16
movzx ecx, word [ebp + 0x10]
test cx, cx
jg 0x48ec10
add eax, ecx
jmp 0x48ec13
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x14]
movzx edx, cx
test eax, eax
je 0x48ec39
cmp word [eax + 0x10], 0
jle 0x48ec39
test ebp, ebp
je 0x48ec39
cmp word [ebp + 0x10], 0
jle 0x48ec39
lea eax, [ecx - 0x14]
movzx edx, ax
xor eax, eax
cmp dword [esp + 0x14], eax
setne al
sub edi, eax
xor eax, eax
test ebp, ebp
setne al
sub edi, eax
cmp dx, 0xa
mov eax, 0xa
cmovl edx, eax
movzx eax, dx
cmp eax, edi
mov edx, eax
movzx eax, di
cmovge edx, eax
movzx eax, dx
mov edi, eax
jmp 0x48ecbd
inc word [esi + 0x18]
movzx eax, word [ebp + 0x10]
movzx edx, word [esi + 0x18]
test ax, ax
jg 0x48ec91
cmp dword [esp + 0x28], 0
jl 0x48ec91
sub eax, ecx
add word [esi + 0x16], ax
movzx edi, word [esi + 0x16]
jmp 0x48ecc1
mov eax, dword [esp + 0x18]
mov cx, word [esi + 0x16]
mov eax, dword [eax + 8]
sub cx, word [eax + edx*2 - 2]
add cx, word [eax + edx*2]
movzx eax, cx
mov word [esi + 0x16], cx
movzx edi, cx
mov ecx, dword [esp + 0x44]
test cl, cl
jns 0x48ecc1
add eax, 0xa
movzx edi, ax
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x18]
movsx eax, word [eax + 0x2c]
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
movsx ecx, word [eax + 0x28]
mov eax, edx
cdq
idiv ecx
inc eax
add eax, edi
push eax
push dword [esp + 0x4c]
call fcn.00461a20
add esp, 8
movzx ecx, ax
movzx eax, ax
test ebx, 0x140
jne 0x48ed0e
lea eax, [edi + 0x10]
push eax
push ecx
call fcn.00461a20
add esp, 8
movzx eax, ax
mov ebx, dword [esp + 0x10]
add eax, ebx
add eax, dword [esp + 0x24]
push dword [esp + 0x60]
mov ebp, dword [esp + 0x38]
mov word [esi + 0x14], ax
lea eax, [ebx + edi]
add eax, dword [esp + 0x28]
mov word [esi + 0x16], ax
push esi
push dword [ebp + 4]
call fcn.00490040
push esi
push ebp
call fcn.0048fe20
mov ecx, dword [esp + 0x78]
add esp, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x24]
test al, 2
movzx edx, cx
movzx ecx, di
cmove edx, ecx
mov word [esi + 0x16], dx
test al, 0x10
jne 0x48ed83
mov edi, dword [esp + 0x18]
mov ax, word [esi + 0x18]
cmp ax, word [edi + 0x30]
jae 0x48ed83
mov eax, dword [esp + 0x24]
add eax, ebx
push eax
push edi
push dword [esp + 0x24]
push ebp
call fcn.0048e860
add esp, 0x10
mov eax, dword [esp + 0x38]
mov edi, 0x100
mov ebx, dword [esp + 0x10]
mov word [esi + 0x16], ax
lea eax, [esp + 0x68]
push eax
call fcn.00491b50
add esp, 4
mov ebp, eax
test ebx, ebx
je 0x48e9a6
jmp 0x48edb1
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x38]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x16], cx
mov ecx, dword [esp + 0x2c]
mov word [esi + 0x18], ax
mov word [esi + 0x2a], dx
mov word [esi + 0x28], cx
cmp ax, dx
jne 0x48eea7
mov ebp, dword [esp + 0x18]
movzx edx, ax
movzx ecx, word [ebp + 0x2e]
lea eax, [edx + 1]
cmp eax, ecx
jae 0x48eea7
test byte [ebp + 0x34], 0x40
jne 0x48eea7
mov eax, dword [ebp + 8]
lea edi, [edx + edx]
cmp word [edi + eax + 2], 0x2a
jl 0x48eea7
mov eax, dword [esp + 0x2c]
movzx eax, ax
inc eax
push eax
push esi
push dword [esp + 0x38]
call fcn.00490190
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x48eea7
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
inc word [esi + 0x18]
inc word [esi + 0x2a]
mov dword [eax + ecx*4], ebx
inc word [esi + 0x28]
or dword [esi + 0x24], 0x8000
mov eax, dword [ebp + 8]
mov cx, word [edi + eax]
sub cx, word [edi + eax + 2]
movzx eax, cx
mov ecx, dword [esp + 0x24]
sub word [esi + 0x16], ax
add ecx, 5
add eax, ecx
push eax
mov eax, dword [esp + 0x38]
push ebp
push dword [esp + 0x24]
push eax
call fcn.0048e860
mov eax, dword [esp + 0x48]
add esp, 0x10
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x54]
mov word [esi + 0x2a], ax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x24], eax
mov eax, ebx
mov ecx, dword [esp + 0xd8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004bf929
add esp, 0xcc
ret