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

Disassembly:
push 0xffffffffffffffff
push 0x534828
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5801d4]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x30], ebp
mov eax, dword [ebp + 0xa4]
xor edi, edi
cmp dword [eax + 0x94], edi
je 0x488164
xor eax, eax
jmp 0x48881e
call fcn.004e1c5d
mov ecx, dword [eax + 4]
call fcn.004de8ec
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0xa4]
mov dword [esp + 0x28], edi
mov esi, dword [ecx + 0xec]
imul esi, esi, 0x154
add esi, 0x584c30
mov dword [esp + 0x68], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], edi
cmp dword [esp + 0x94], edi
je 0x4881e4
mov eax, dword [ecx + 0x188]
push edi
push 1
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 0x18c]
push eax
push edx
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x180]
mov eax, dword [ecx + 0x184]
push edx
push eax
call fcn.0046edb0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
jmp 0x488202
mov eax, dword [ecx + 0x294]
dec eax
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 0x2e0]
mov edx, eax
shl edx, 5
mov ecx, dword [edx + ecx]
dec ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x84]
push edi
push 1
push eax
mov eax, dword [esp + 0x8c]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xa4]
push edi
call fcn.0046fc70
xor ecx, ecx
mov edi, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d76f8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
add esp, 4
push 0
push 1
mov ebx, eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [ebp + 0xa4]
push edx
push eax
push ebx
call fcn.0046fc70
mov ecx, 1
xor eax, eax
sub edi, ecx
cmp edi, eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ecx
jle 0x488776
jmp 0x4882a4
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x90], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x74], eax
je 0x4882f1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x88]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [ebp + 0xa4]
push edx
push eax
mov eax, dword [esp + 0x7c]
add ecx, 0x1c0
push ecx
lea edx, [esp + 0x84]
push edx
push eax
push ebx
call fcn.00467e30
add esp, 0x1c
jmp 0x488322
cmp dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x70]
push ecx
je 0x488316
push esi
push eax
push edx
push edi
push ebx
call fcn.00467a20
add esp, 0x18
jmp 0x488322
push eax
push edx
push edi
push ebx
call fcn.004678d0
add esp, 0x14
mov esi, eax
test esi, esi
je 0x4884c7
mov eax, dword [esp + 0x74]
cmp eax, 1
jne 0x488353
mov ecx, 0xd
cmp cx, word [esi]
jne 0x488353
mov edx, 0xa
cmp dx, word [esi + 2]
jne 0x488353
mov eax, 2
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
push eax
push ecx
mov edx, esi
sub edx, ebx
sar edx, 1
push edx
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [ebp + 0xa4]
mov dword [esp + 0x54], esi
call fcn.00468590
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xa4]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.00468590
cmp dword [esp + 0x24], 0
jne 0x4883d8
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x24], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
cmp dword [esp + 0x90], 0
mov dword [esp + 0x2c], 1
je 0x488445
mov eax, dword [esp + 0x78]
mov ecx, dword [ebp + 0xa4]
push eax
add ecx, 0x1c0
call fcn.004a7130
test eax, eax
je 0x48843d
mov ecx, eax
lea ebx, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x488410
sub ecx, ebx
sar ecx, 1
push eax
mov dword [esp + 0x80], ecx
call fcn.004d7727
add esp, 4
cmp dword [esp + 0x28], 0
je 0x488445
add dword [esp + 0x20], 2
jmp 0x488445
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x74]
lea eax, [ecx + ecx]
lea ebx, [eax + esi]
sub eax, dword [esp + 0x38]
add eax, esi
sar eax, 1
sub edi, eax
cmp dword [esp + 0x2c], 0
je 0x48846e
mov edx, dword [esp + 0x7c]
sub edx, ecx
add dword [esp + 0x20], edx
inc dword [esp + 0x3c]
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
je 0x4884bd
xor eax, eax
cmp dword [esp + 0x24], eax
lea edx, [esi + 4]
setne al
mov dword [esp + 0x48], eax
cmp ebx, edx
jbe 0x4884b5
mov eax, 0xa
cmp ax, word [ebx - 2]
jne 0x4884b5
mov edx, 0xd
cmp dx, word [ebx - 4]
je 0x4884bd
mov dword [esp + 0x14], 0
test edi, edi
jg 0x4882a0
jmp 0x4884d3
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x488776
mov edx, dword [esp + 0x48]
sub esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x54]
sar esi, 1
add esi, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x84], edx
mov ebp, esi
mov dword [esp + 0x74], eax
lea eax, [ecx + ebp + 1]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ebp
neg ecx
or ecx, eax
push ecx
call fcn.004d76f8
add esp, 4
xor esi, esi
mov ebx, eax
test ebp, ebp
jle 0x488731
jmp 0x488554
mov ebp, dword [esp + 0x2c]
cmp dword [esp + 0x90], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], edi
mov dword [esp + 0x74], eax
je 0x4885a5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [eax + 0xa4]
mov eax, dword [esp + 0x78]
push edx
add ecx, 0x1c0
push ecx
lea edx, [esp + 0x84]
push edx
push eax
push edi
call fcn.00467e30
add esp, 0x1c
jmp 0x4885de
cmp dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x88]
push ecx
je 0x4885ce
mov edx, dword [esp + 0x50]
push edx
push eax
mov eax, dword [esp + 0x7c]
push eax
push ebp
push edi
call fcn.00467a20
add esp, 0x18
jmp 0x4885de
mov edx, dword [esp + 0x74]
push eax
push edx
push ebp
push edi
call fcn.004678d0
add esp, 0x14
mov ebp, eax
test ebp, ebp
je 0x488731
cmp dword [esp + 0x74], 1
jne 0x48860d
mov eax, 0xd
cmp ax, word [ebp]
jne 0x48860d
mov ecx, 0xa
cmp cx, word [ebp + 2]
jne 0x48860d
mov dword [esp + 0x74], 2
cmp edi, ebp
jae 0x488620
mov dx, word [edi]
mov word [ebx + esi*2], dx
add edi, 2
inc esi
cmp edi, ebp
jb 0x488611
cmp dword [esp + 0x90], 0
je 0x4886c8
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
mov ecx, dword [ecx + 0xa4]
push eax
add ecx, 0x1c0
call fcn.004a7130
test eax, eax
je 0x4886a8
mov ecx, eax
lea edx, [ecx + 2]
mov dword [esp + 0x7c], edx
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x488655
sub ecx, dword [esp + 0x7c]
sar ecx, 1
mov edx, ecx
xor ecx, ecx
mov dword [esp + 0x7c], edx
test edx, edx
jle 0x488682
mov dx, word [eax + ecx*2]
mov word [ebx + esi*2], dx
inc ecx
inc esi
cmp ecx, dword [esp + 0x7c]
jl 0x488672
push eax
call fcn.004d7727
add esp, 4
cmp dword [esp + 0x28], 0
je 0x4886e4
mov eax, 0xd
mov word [ebx + esi*2], ax
inc esi
mov ecx, 0xa
mov word [ebx + esi*2], cx
inc esi
jmp 0x4886e4
mov ecx, dword [esp + 0x74]
xor eax, eax
test ecx, ecx
jle 0x4886eb
mov dx, word [edi]
mov word [ebx + esi*2], dx
mov ecx, dword [esp + 0x74]
inc eax
inc esi
add edi, 2
cmp eax, ecx
jl 0x4886b2
jmp 0x4886eb
mov ecx, dword [esp + 0x7c]
xor eax, eax
test ecx, ecx
jle 0x4886e4
mov edx, dword [esp + 0x78]
mov dx, word [edx + eax*2]
mov word [ebx + esi*2], dx
inc eax
inc esi
cmp eax, ecx
jl 0x4886d2
mov ecx, dword [esp + 0x74]
lea edi, [edi + ecx*2]
lea eax, [ecx + ecx]
sub eax, dword [esp + 0x38]
add eax, ebp
sar eax, 1
sub dword [esp + 0x2c], eax
cmp dword [esp + 0x14], 0
je 0x488726
add ebp, 4
cmp edi, ebp
jbe 0x48871e
mov ecx, 0xa
cmp cx, word [edi - 2]
jne 0x48871e
mov edx, 0xd
cmp dx, word [edi - 4]
je 0x488726
mov dword [esp + 0x14], 0
cmp dword [esp + 0x2c], 0
jg 0x488550
xor eax, eax
mov word [ebx + esi*2], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x88]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
push esi
push ebx
push edx
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x98]
push edx
push ecx
mov ecx, dword [eax + 0xa4]
call fcn.004715c0
push ebx
call fcn.004d7727
mov ebp, dword [esp + 0x34]
add esp, 4
mov edx, dword [esp + 0x58]
push edx
call fcn.004d7727
add esp, 4
cmp dword [esp + 0x94], 0
je 0x488806
mov ecx, dword [ebp + 0xa4]
mov edx, dword [ecx + 0x184]
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x20]
push edx
mov edx, dword [ecx + 0x180]
push edx
push eax
lea eax, [esp + 0x88]
push eax
lea edx, [esp + 0x80]
push edx
call fcn.00468590
mov eax, dword [ebp + 0xa4]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x7c]
mov esi, dword [eax + 0x180]
mov edi, dword [eax + 0x184]
mov dword [eax + 0x188], ecx
mov ecx, 1
mov dword [eax + 0x184], edi
mov dword [eax + 0x180], esi
mov dword [eax + 0x18c], edx
mov dword [eax + 0x190], ecx
mov dword [eax + 0x100], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x68], 0xffffffff
call fcn.004132c0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x28