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

Disassembly:
sub esp, 0x124
push ebx
push ebp
mov ebp, dword [esp + 0x130]
mov edx, dword [ebp + 0x44]
mov ebx, dword [ebp + 0x40]
push esi
push edi
mov edi, dword [ebp + 0x3c]
and dword [edi + 0x9c], 0xfffffff7
mov eax, dword [edi + 0x9c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
test al, 4
je 0x488ab9
xor eax, 0xc
mov dword [edi + 0x9c], eax
mov eax, dword [ebp + 0x278]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x13c]
mov esi, dword [ebx + 0x1a68]
add eax, 0x800000
shr eax, 0x10
mov ecx, eax
imul ecx, ecx, 0x1a8
lea edi, [esi + ecx]
mov dword [esp + 0x1c], edi
test eax, eax
je 0x488b38
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x1b4]
inc ecx
cmp eax, ecx
jae 0x488b38
cmp dword [edi + 0x18], 0
jne 0x488b52
lea eax, [eax + eax*2]
mov ecx, dword [eax*8 + 0x918bbc]
lea eax, [eax*8 + 0x918bb8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 0x18], ecx
mov ecx, dword [eax + 0xc]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], 0xffffffff
mov eax, dword [eax]
lea esi, [edi + 0x90]
mov cl, byte [eax]
mov byte [esi], cl
inc eax
inc esi
test cl, cl
jne 0x488b24
lea eax, [edi + 0x90]
mov dword [edi], eax
jmp 0x488b52
mov ecx, dword [ebx + 8]
cmp eax, dword [ecx + 0x1b8]
jae 0x489369
cmp word [edi + 0x4c], 0
je 0x489369
movzx esi, word [esp + 0x13c]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
add ecx, eax
cmp esi, ecx
jae 0x488c04
cmp esi, eax
jae 0x488bde
cmp byte [ebp + 0x16], 4
mov ecx, dword [edi + 8]
lea eax, [esi + esi*8]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
jne 0x488b89
mov cx, word [eax + 0x16]
jmp 0x488b8d
mov cx, word [eax + 0x14]
mov word [esp + 0x30], cx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax + 0x18]
mov byte [esp + 0x32], cl
movzx ecx, byte [eax + 0x19]
mov byte [esp + 0x33], cl
movzx ecx, word [eax + 0x1a]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x488bd4
cmp esi, dword [edi + 0x10]
jae 0x488bd4
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x34], ecx
jmp 0x488bfb
mov dword [esp + 0x34], 0
jmp 0x488bfb
sub esi, eax
shl esi, 5
add esi, dword [edi + 0x14]
mov ecx, 8
lea edi, [esp + 0x20]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
xor ecx, ecx
cmp word [esp + 0x30], cx
jne 0x488c29
push ebp
push ebp
push 0x34
mov esi, edx
call fcn.0048aaf0
test eax, eax
je 0x489393
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x24], 0
mov ecx, dword [edx]
jmp 0x48937d
mov eax, dword [esp + 0x2c]
add dword [edx + 0x10], eax
adc dword [edx + 0x14], ecx
mov eax, dword [esp + 0x28]
add dword [edx + 8], eax
mov eax, 1
adc dword [edx + 0xc], ecx
add dword [edx + 0x1f0], eax
add dword [ebx + 0xd0], eax
mov eax, dword [esp + 0x14]
test byte [eax + 0x9c], 0xa
jne 0x488c7d
cmp dword [esp + 0x34], ecx
jne 0x488c68
test byte [esp + 0x38], 1
je 0x488c7d
movzx eax, byte [ebp + 0x74]
cdq
add dword [ebp + 0x190], eax
mov eax, dword [esp + 0x14]
adc dword [ebp + 0x194], edx
and dword [eax + 0x9c], 0xffffffdf
lea ecx, [esp + 0x20]
mov dword [eax + 0x8c], ecx
mov dl, byte [ebp + 0x81]
cmp dl, byte [ebp + 0x10c]
je 0x488cc4
mov ecx, 0xcd
cmp word [ebp + 0xe2], cx
jne 0x488cc4
mov edx, dword [ebp + 0x190]
mov ecx, dword [ebp + 0x194]
mov dword [ebp + 0x270], edx
mov dword [ebp + 0x274], ecx
jmp 0x488d27
test byte [esp + 0x38], 0x20
je 0x488d27
mov cl, byte [ebp + 0x17]
lea esi, [ebp + 0x270]
mov dword [esi], 0
mov dword [esi + 4], 0
cmp cl, 8
jae 0x488ced
mov eax, 4
jmp 0x488d02
mov dl, byte [ebp + 0x80]
xor eax, eax
cmp dl, byte [ebp + 0x10b]
setne al
dec eax
and eax, 0x78
push 0
movzx ecx, cl
cdq
add eax, dword [ebp + 0x130]
push esi
push ecx
mov ecx, dword [ebp + 0x134]
adc ecx, edx
push ecx
push eax
mov eax, dword [ebp + 0x2c]
mov dl, 1
mov ecx, ebp
call eax
mov eax, dword [esp + 0x14]
test byte [eax + 0x9c], 8
movzx esi, byte [esp + 0x32]
jne 0x488ed6
cmp byte [ebp + 0x16], 4
jne 0x488dad
mov eax, dword [ebp + 0x120]
mov edx, dword [ebp + 0x11c]
mov ecx, dword [ebp + 0x118]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x154]
mov dword [esp + 0x54], eax
movzx eax, byte [ebp + 0x17]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x150]
add eax, eax
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0x15c]
add eax, eax
mov dword [esp + 0x5c], edx
cdq
add dword [esp + 0x140], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x124]
adc dword [esp + 0x144], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebp + 0x158]
mov dword [esp + 0x58], ecx
mov edi, 4
jmp 0x488e0b
movzx eax, byte [esp + 0x33]
and eax, 3
sub eax, 2
je 0x488df2
sub eax, 1
je 0x488dc3
xor edi, edi
jmp 0x488e0b
mov eax, dword [ebp + 0x118]
mov ecx, dword [ebp + 0x11c]
mov edx, dword [ebp + 0x120]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x124]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov edi, 2
jmp 0x488e0b
mov ecx, dword [ebp + 0x118]
mov edx, dword [ebp + 0x11c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov edi, 1
cmp edi, esi
jae 0x488ef9
sub esi, edi
test esi, esi
jbe 0x488ef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x140]
mov dword [eax + 0x1e8], ecx
mov ecx, dword [esp + 0x144]
mov dword [eax + 0x1ec], ecx
cmp byte [ebp + 0x16], 4
mov eax, dword [esp + 0x140]
jne 0x488e66
lea edx, [esp + edi*8 + 0x40]
push edx
push ecx
push eax
mov eax, dword [ebp + 0x20]
lea edx, [esi*8]
mov ecx, ebp
call eax
test al, al
jne 0x488e82
jmp 0x488ef9
lea edx, [esp + 0xe0]
push edx
movzx edx, byte [ebp + 0x17]
imul edx, esi
push ecx
push eax
mov eax, dword [ebp + 0x20]
mov ecx, ebp
call eax
test al, al
je 0x488eb2
mov cl, byte [ebp + 0x81]
cmp cl, byte [ebp + 0x10c]
je 0x489395
mov dword [ebp + 0x110], 0xc0000005
mov dword [ebp + 0x114], 0
mov byte [esp + 0x10], 0
jmp 0x48913e
xor edx, edx
xor eax, eax
cmp esi, edx
jbe 0x488ef9
lea ecx, [esp + edi*8 + 0x40]
mov edi, edi
mov edi, dword [esp + eax*4 + 0xe0]
mov dword [ecx], edi
mov dword [ecx + 4], edx
inc eax
add ecx, 8
cmp eax, esi
jb 0x488ec0
jmp 0x488ef9
test esi, esi
je 0x488ef9
mov eax, dword [esp + 0x14]
lea edx, [esi*8]
push edx
add eax, 0x260
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.005186a0
add esp, 0xc
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x17c]
xor ecx, ecx
cmp eax, ecx
jne 0x488fb0
mov eax, dword [esp + 0x34]
cmp eax, ecx
jne 0x488fb0
test byte [esp + 0x38], 1
jne 0x488fb0
test byte [ebx + 0x1958], 0x30
lea esi, [ecx + 0x30]
jne 0x488f89
mov edx, dword [esp + 0x1c]
test dword [edx + 0x50], 0x20000
je 0x488f66
mov edx, dword [edx]
xor eax, eax
movzx edi, byte [ecx + edx]
shl eax, 8
inc ecx
or eax, edi
cmp ecx, 4
jae 0x488f54
test al, al
jne 0x488f41
mov edx, dword [esp + 0x18]
add eax, 0x85109293
push eax
push edx
mov edi, 0x6d
jmp 0x488f7e
test dword [esp + 0x38], 0x200
je 0x488f89
mov eax, dword [esp + 0x13c]
push eax
push edi
mov edi, 0x33
call fcn.00455360
or dword [ebx + 0x1958], esi
mov esi, dword [esp + 0x18]
push ebp
push ebp
push 0x34
call fcn.0048aaf0
test eax, eax
je 0x489393
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x24], ecx
mov ecx, dword [edx]
jmp 0x48937d
mov byte [ebp + 0x11], 0
cmp eax, ecx
je 0x488fd3
mov esi, dword [esp + 0x13c]
lea edx, [esp + 0x40]
mov ecx, ebp
mov dword [ebp + 0x278], esi
call eax
mov byte [esp + 0x10], al
jmp 0x489006
test byte [esp + 0x38], 2
mov edx, dword [esp + 0x3c]
mov dword [ebp + 0x110], edx
mov dword [ebp + 0x114], ecx
je 0x488ffa
cmp byte [ebp + 0x16], 4
jne 0x488ffa
mov dword [ebp + 0x114], 0xffffffff
mov esi, dword [esp + 0x13c]
mov byte [esp + 0x10], 0
test byte [ebx + 0x1958], 0x30
jne 0x4890cf
mov eax, dword [esp + 0x38]
test eax, 0x8000
je 0x489029
test eax, 0x7c00
jne 0x4890cf
test eax, 0x7e00
je 0x4890c1
test eax, 0x200
je 0x489044
push esi
push edi
mov edi, 0x33
jmp 0x4890b1
test eax, 0x400
je 0x489059
mov ecx, dword [ebp + 0x110]
or ecx, dword [ebp + 0x114]
je 0x4890aa
test eax, 0x800
je 0x489071
mov edx, dword [ebp + 0x110]
and edx, dword [ebp + 0x114]
cmp edx, 0xffffffff
je 0x4890aa
test eax, 0x1000
je 0x489081
cmp byte [ebp + 0x113], 0
jl 0x4890aa
test eax, 0x4000
je 0x489096
mov ecx, dword [ebp + 0x110]
or ecx, dword [ebp + 0x114]
jne 0x4890aa
test eax, 0x2000
je 0x4890c1
mov edx, dword [esp + 0x14]
test byte [edx + 0x9c], 0x20
je 0x4890c1
push esi
push edi
mov edi, 0x34
call fcn.00455360
or dword [ebx + 0x1958], 0x30
mov eax, dword [esp + 0x38]
test eax, 0x100
jne 0x4890cf
or dword [ebx + 0x1958], 0x30
mov al, byte [esp + 0x10]
test al, al
js 0x4892e3
mov cl, byte [esp + 0x38]
test cl, 4
jne 0x4892e3
mov dl, byte [ebp + 0x81]
cmp dl, byte [ebp + 0x10c]
jne 0x48912b
test cl, 0x10
jne 0x48912b
cmp byte [ebp + 0x16], 4
je 0x4892e9
mov eax, dword [ebp + 0x190]
inc eax
mov dword [ebp + 0x118], eax
mov dword [ebp + 0x120], 0xffffffff
mov dword [ebp + 0x114], 0
jmp 0x4892e9
cmp al, 8
je 0x4892e9
cmp byte [esp + 0x10], 0x32
je 0x4892e9
cmp byte [ebp + 0x16], 4
jne 0x489161
mov ecx, dword [ebp + 0x190]
mov edx, dword [ebp + 0x194]
mov dword [ebp + 0x118], ecx
mov dword [ebp + 0x11c], edx
jmp 0x4892e9
mov eax, dword [ebp + 0x40]
cmp byte [eax + 0xc5], 0
jne 0x4892ad
mov ecx, dword [ebx + 0x78c8]
mov dword [ebp + 0x1a0], ecx
mov edx, dword [ebx + 0x78cc]
mov dword [ebp + 0x1a4], edx
mov eax, dword [ebx + 0x78d0]
mov dword [ebp + 0x1a8], eax
mov ecx, dword [ebx + 0x78d4]
mov dword [ebp + 0x1ac], ecx
mov edx, dword [ebx + 0x78d8]
mov dword [ebp + 0x1b0], edx
mov eax, dword [ebx + 0x78dc]
mov dword [ebp + 0x1b4], eax
mov ecx, dword [ebx + 0x7910]
mov dword [ebp + 0x1e8], ecx
mov edx, dword [ebx + 0x7914]
mov dword [ebp + 0x1ec], edx
mov eax, dword [ebx + 0x7918]
mov dword [ebp + 0x1f0], eax
mov ecx, dword [ebx + 0x791c]
mov dword [ebp + 0x1f4], ecx
mov edx, dword [ebx + 0x7920]
mov dword [ebp + 0x1f8], edx
mov eax, dword [ebx + 0x7924]
mov dword [ebp + 0x1fc], eax
mov ecx, dword [ebx + 0x7928]
mov dword [ebp + 0x200], ecx
mov edx, dword [ebx + 0x792c]
mov dword [ebp + 0x204], edx
mov eax, dword [ebx + 0x7930]
mov dword [ebp + 0x208], eax
mov ecx, dword [ebx + 0x7934]
mov dword [ebp + 0x20c], ecx
mov edx, dword [ebx + 0x7938]
mov dword [ebp + 0x210], edx
mov eax, dword [ebx + 0x793c]
mov dword [ebp + 0x214], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x200]
mov dword [ebp + 0x200], ecx
mov edx, dword [eax + 0x204]
mov dword [ebp + 0x204], edx
mov eax, dword [ebx + 0x7940]
mov dword [ebp + 0x218], eax
mov ecx, dword [ebx + 0x7944]
mov dword [ebp + 0x21c], ecx
mov edx, dword [ebx + 0x7948]
mov dword [ebp + 0x220], edx
mov eax, dword [ebx + 0x794c]
mov dword [ebp + 0x224], eax
mov ecx, dword [ebx + 0x7950]
mov dword [ebp + 0x228], ecx
mov edx, dword [ebx + 0x7954]
mov dword [ebp + 0x22c], edx
mov eax, dword [ebp + 0x130]
mov ecx, 0xcd
mov dword [ebp + 0x118], eax
cmp word [ebp + 0xe2], cx
je 0x4892d5
mov ebx, dword [ebx + 0x1960]
mov dword [ebp + 0x120], ebx
jmp 0x4892e9
mov ebx, dword [ebp + 0x190]
mov dword [ebp + 0x120], ebx
jmp 0x4892e9
and al, 0x7f
mov byte [esp + 0x10], al
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x78], 0
je 0x4892f8
mov byte [esp + 0x10], 0x30
mov eax, dword [esi + 0xdc0]
test eax, eax
jns 0x489314
and eax, 0x7fffffff
mov dword [esi + 0xdc0], eax
mov byte [esp + 0x10], 0x35
jmp 0x489320
mov al, byte [esp + 0x10]
cmp al, 0x34
jb 0x489358
cmp al, 0x36
ja 0x489358
mov edx, dword [esp + 0x10]
push ebp
push ebp
push edx
call fcn.0048aaf0
test eax, eax
je 0x489353
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov dword [eax + 0x20], edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x13c]
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], edx
mov ecx, dword [esi + 0x1ec]
mov dword [eax + 0x2c], ecx
mov byte [esp + 0x10], 0x30
mov al, byte [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret 0x10
push ebp
push ebp
push 0x34
mov esi, edx
call fcn.0048aaf0
xor ecx, ecx
cmp eax, ecx
je 0x489393
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x13c]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x28], edx
mov ecx, dword [esi + 0x1ec]
mov dword [eax + 0x2c], ecx
mov al, 0x30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret 0x10