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

Disassembly:
sub esp, 0xcc
mov eax, dword [0x50b0b0]
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 0x48e5d5
lea eax, [ebx + 7]
jmp 0x48ebb9
test byte [esi + 0x24], 0x20
mov edi, dword [esp + 0x18]
je 0x48e5e6
mov edx, 0x18
jmp 0x48e5fb
cmp dword [edi + 0x28], ecx
jle 0x48e5f6
test byte [ebp + 0x24], 8
mov edx, 0xbf
je 0x48e5fb
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.00491510
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 0x48e68f
mov dword [esp + 0x48], ebx
jmp 0x48e6a6
cwde
cdq
push edx
push eax
call fcn.00461b10
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 0x48eac1
movzx edx, word [ebp + 0x12]
mov eax, 0x80
mov ecx, edx
mov dword [esp + 0x44], ecx
cmp cx, ax
jne 0x48e6f6
mov ecx, dword [esp + 0x28]
test ecx, ecx
js 0x48eaa4
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 0x48eaa4
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x48eaa4
test word [ebp + 0x14], di
je 0x48e719
cmp edx, 0x10
je 0x48eaa4
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.0048ff20
add esp, 0xc
test eax, eax
jne 0x48eac1
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 0x48e7e6
mov eax, dword [ebp]
or ebx, 4
mov dword [esi + 0x24], ebx
test dword [eax + 4], 0x800
je 0x48e7bb
mov edx, dword [esp + 0x14]
mov eax, 0x2e
movzx eax, ax
jmp 0x48e8dd
mov ecx, dword [eax + 0x14]
xor eax, eax
test ecx, ecx
je 0x48e7da
mov ecx, dword [ecx]
test ecx, ecx
je 0x48e7da
mov eax, ecx
cdq
push edx
push eax
call fcn.00461b10
add esp, 8
movzx eax, ax
mov edx, dword [esp + 0x14]
movzx eax, ax
jmp 0x48e8dd
test al, 2
je 0x48e844
mov edx, ebx
or ebx, 1
cmp dword [esp + 0x28], 0
mov edi, ebx
mov dword [esi + 0x24], ebx
jl 0x48e830
cmp word [esp + 0x24], 0
jne 0x48e83b
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 0x2e]
movzx eax, word [esi + 0x18]
dec ecx
cmp eax, ecx
jne 0x48e83b
mov eax, dword [esp + 0x18]
test byte [eax + 0x34], 8
jne 0x48e830
mov edx, dword [esp + 0x14]
or ebx, 0x10000
mov dword [esi + 0x24], ebx
jmp 0x48e8db
mov ebx, edx
or ebx, 0x1001
mov dword [esi + 0x24], ebx
mov edx, dword [esp + 0x14]
jmp 0x48e8db
test al, al
jns 0x48e857
mov edx, dword [esp + 0x14]
or ebx, 8
mov dword [esi + 0x24], ebx
jmp 0x48e8db
test al, 0x24
je 0x48e8b6
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 0x48e8b0
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.0048ff20
add esp, 0xc
test eax, eax
jne 0x48eabd
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 0x48e8db
or ebx, 0x12
mov dword [esp + 0x20], ebp
mov dword [esi + 0x24], ebx
test bl, 0x20
je 0x48e8d5
mov eax, dword [esp + 0x5c]
movzx ecx, ax
mov eax, dword [esi + 0x30]
mov edx, dword [eax + ecx*4 - 8]
jmp 0x48e8d7
xor edx, edx
mov dword [esp + 0x14], edx
xor eax, eax
mov dword [esp + 0x10], eax
movzx ecx, ax
test bl, 2
je 0x48e97d
movzx eax, word [esi + 0x16]
movsx edi, ax
test edx, edx
je 0x48e908
movzx ecx, word [edx + 0x10]
test cx, cx
jg 0x48e905
add eax, ecx
jmp 0x48e908
sub eax, 0x14
mov ebp, dword [esp + 0x20]
movzx ecx, ax
test ebp, ebp
je 0x48e926
movzx ecx, word [ebp + 0x10]
test cx, cx
jg 0x48e920
add eax, ecx
jmp 0x48e923
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x14]
movzx edx, cx
test eax, eax
je 0x48e949
cmp word [eax + 0x10], 0
jle 0x48e949
test ebp, ebp
je 0x48e949
cmp word [ebp + 0x10], 0
jle 0x48e949
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 0x48e9cd
inc word [esi + 0x18]
movzx eax, word [ebp + 0x10]
movzx edx, word [esi + 0x18]
test ax, ax
jg 0x48e9a1
cmp dword [esp + 0x28], 0
jl 0x48e9a1
sub eax, ecx
add word [esi + 0x16], ax
movzx edi, word [esi + 0x16]
jmp 0x48e9d1
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 0x48e9d1
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.00461bb0
add esp, 8
movzx ecx, ax
movzx eax, ax
test ebx, 0x140
jne 0x48ea1e
lea eax, [edi + 0x10]
push eax
push ecx
call fcn.00461bb0
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.0048fdd0
push esi
push ebp
call fcn.0048fb90
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 0x48ea93
mov edi, dword [esp + 0x18]
mov ax, word [esi + 0x18]
cmp ax, word [edi + 0x30]
jae 0x48ea93
mov eax, dword [esp + 0x24]
add eax, ebx
push eax
push edi
push dword [esp + 0x24]
push ebp
call fcn.0048e570
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.00491890
add esp, 4
mov ebp, eax
test ebx, ebx
je 0x48e6b6
jmp 0x48eac1
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 0x48ebb7
mov ebp, dword [esp + 0x18]
movzx edx, ax
movzx ecx, word [ebp + 0x2e]
lea eax, [edx + 1]
cmp eax, ecx
jae 0x48ebb7
test byte [ebp + 0x34], 0x40
jne 0x48ebb7
mov eax, dword [ebp + 8]
lea edi, [edx + edx]
cmp word [edi + eax + 2], 0x2a
jl 0x48ebb7
mov eax, dword [esp + 0x2c]
movzx eax, ax
inc eax
push eax
push esi
push dword [esp + 0x38]
call fcn.0048ff20
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x48ebb7
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.0048e570
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.004bf6e8
add esp, 0xcc
ret