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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
mov esi, dword [ecx + 0x360]
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xa0]
push edi
lea ecx, [esp + 0x84]
push eax
push ecx
mov ecx, esi
call fcn.0041a3e0
mov edi, dword [eax]
mov ecx, esi
mov ebx, dword [eax + 4]
push ebx
push edi
mov edx, dword [eax + 8]
mov dword [esp + 0x5c], edx
call fcn.0041a3b0
test al, al
je 0x4ac3a0
mov eax, dword [esi + 0x2c]
imul eax, ebx
add eax, edi
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + eax*4]
jmp 0x4ac3a2
xor eax, eax
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4ad21e
test eax, eax
je 0x4ad21e
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov edi, dword [esp + 0xac]
lea edx, [ecx + ecx*2]
mov ecx, dword [0x6249f8]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x28]
test edi, edi
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + eax*8]
lea eax, [edi - 0xf]
mov dword [esp + 0x20], edx
jl 0x4ac3ef
mov eax, edi
mov ebx, dword [esp + 0xa4]
cdq
and edx, 0xf
add eax, edx
mov ecx, eax
mov eax, ebx
cdq
and edx, 0x3f
add eax, edx
mov esi, eax
mov eax, dword [esp + 0xa8]
cdq
and edx, 0x3f
add eax, edx
sar esi, 6
sar ecx, 4
sar eax, 6
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], eax
test edi, edi
mov dword [esp + 0x60], ecx
mov esi, edi
jge 0x4ac442
and esi, 0x8000000f
jns 0x4ac43d
dec esi
or esi, 0xfffffff0
inc esi
add esi, 0x10
jmp 0x4ac44f
and esi, 0x8000000f
jns 0x4ac44f
dec esi
or esi, 0xfffffff0
inc esi
mov eax, ebx
and eax, 0x8000003f
jns 0x4ac45d
dec eax
or eax, 0xffffffc0
inc eax
mov edx, dword [esp + 0xa8]
and edx, 0x8000003f
jns 0x4ac471
dec edx
or edx, 0xffffffc0
inc edx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], esi
mov eax, dword [ecx]
lea edx, [esp + 0x4c]
push 0
push edx
call dword [eax + 0x94]
mov esi, dword [eax]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x68], esi
mov ebx, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [eax + 8]
mov dword [esp + 0x70], eax
mov al, byte [edi + 0x3ad]
test al, al
jne 0x4ac6c0
cmp esi, 1
jne 0x4ac55e
cmp ebx, esi
jne 0x4ac55e
mov al, byte [ebp + 0xb]
test al, al
jne 0x4ac55e
mov al, byte [ebp + 0xa]
test al, al
jne 0x4ac55e
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
lea ecx, [esp + 0x94]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esp + 0x48]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
mov edx, dword [eax + 4]
push ecx
mov dword [esp + 0x3c], edx
lea edx, [esp + 0x78]
mov eax, dword [eax + 8]
push edx
mov dword [esp + 0x44], eax
call fcn.004b5e20
mov ecx, dword [eax]
add esp, 8
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x4c]
mov edx, dword [eax + 4]
push ecx
mov dword [esp + 0x54], edx
lea edx, [esp + 0x5c]
mov eax, dword [eax + 8]
push edx
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x2c]
push eax
jmp 0x4ac698
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov al, byte [ebp + 0xb]
test al, al
je 0x4ac5bd
mov al, byte [edi + 0x3ae]
test al, al
jne 0x4ac590
lea ecx, [esp + 0x40]
push ecx
call fcn.00421690
add esp, 4
mov dword [edi + 0x35c], eax
mov edx, dword [edi + 0x35c]
lea eax, [esp + 0x24]
push edx
push eax
call fcn.004215d0
mov ecx, dword [eax]
add esp, 8
mov dword [esp + 0x34], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
jmp 0x4ac689
mov al, byte [ebp + 0xa]
test al, al
jne 0x4ac674
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
cdq
and edx, 0x1f
push ecx
add eax, edx
lea ecx, [esp + 0x28]
sar eax, 5
push eax
mov eax, dword [esp + 0x48]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
call fcn.004d8f90
mov edx, dword [eax]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x74]
mov edx, dword [eax + 8]
lea eax, [esp + 0x4c]
push eax
push ecx
mov dword [esp + 0x5c], edx
call fcn.004b5e20
mov edx, eax
add esp, 8
cmp esi, 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
je 0x4ac645
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4ac63e
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, 0x20
cmp ebx, 1
mov dword [esp + 0x34], eax
jne 0x4ac654
mov dword [esp + 0x38], ecx
jmp 0x4ac689
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4ac667
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, 0x20
mov dword [esp + 0x38], eax
jmp 0x4ac689
mov eax, 0x20
xor edx, edx
mov ecx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x34]
lea ecx, [esp + 0x58]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, dword [edi + 0x360]
call fcn.00436260
mov ecx, dword [eax]
mov dword [esp + 0xa4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xa8], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xac], eax
mov al, byte [ebp + 0xd]
test al, al
je 0x4ac6d2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xac], ecx
mov esi, dword [ebp + 0x10]
mov ecx, dword [edi + 0x360]
lea edx, [esp + 0xa4]
lea eax, [esp + 0x24]
push edx
push eax
add esi, 0x74
call fcn.004362e0
mov ecx, dword [eax]
add esi, 0x40
mov dword [esi], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0xa4]
mov dword [esi + 4], edx
mov eax, dword [eax + 8]
push ecx
mov dword [esi + 8], eax
mov ecx, dword [ebp + 0x10]
call fcn.0041aa50
mov al, byte [edi + 0x3ad]
test al, al
jne 0x4ad21e
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x14], 0
test eax, eax
mov byte [ebp + 9], 0
mov byte [ebp + 8], 1
mov dword [esp + 0x64], eax
je 0x4acc51
mov ecx, dword [eax + 0x128]
push 0x621c78
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
je 0x4acc51
mov al, byte [esp + 0xb0]
test al, al
je 0x4ac793
mov eax, dword [edi + 0x360]
mov ecx, 0xfffffffe
sub ecx, dword [eax + 0x10]
shl ecx, 1
mov eax, ecx
mov cl, byte [edi + 0x40c]
and eax, 7
test cl, cl
je 0x4ac78a
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x12c]
mov ecx, dword [ebp + 0x10]
push eax
call fcn.0041c3b0
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x74]
push edx
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ecx, dword [eax]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 8]
test esi, esi
mov edx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
je 0x4ac7da
mov ecx, dword [esi + 0x128]
push 0x6260b0
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
je 0x4ac7da
mov ebx, esi
jmp 0x4ac7dc
xor ebx, ebx
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x4ac7fb
mov ecx, dword [edi + 0x128]
push 0x6273f0
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
je 0x4ac7fb
mov esi, edi
jmp 0x4ac7fd
xor esi, esi
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x4ac81c
mov ecx, dword [edi + 0x128]
push 0x626140
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
mov dword [esp + 0x18], edi
jne 0x4ac824
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x1c]
push 1
mov ecx, edi
call fcn.00420ad0
test al, al
jne 0x4ac846
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4ac846
mov dword [ebp + 0x14], 0x2847
test ebx, ebx
je 0x4ac8c7
mov ecx, edi
call fcn.00421af0
test al, al
jne 0x4ac85c
mov al, byte [ebp + 0xd]
test al, al
je 0x4ac8b4
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, edi
call fcn.00421d20
test al, al
jne 0x4ac8b4
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0xbc]
test al, al
jne 0x4ac89e
test byte [edi + 0x83], 3
jne 0x4ac8b4
mov cl, byte [ebp + 8]
mov ebx, dword [esp + 0x20]
mov eax, 1
and cl, al
mov byte [ebp + 8], cl
jmp 0x4acb23
mov cl, byte [ebp + 8]
mov ebx, dword [esp + 0x20]
xor eax, eax
and cl, al
mov byte [ebp + 8], cl
jmp 0x4acb23
test esi, esi
je 0x4ac949
mov ebx, dword [esp + 0x1c]
mov cl, 1
mov edi, 2
lea eax, [ebx + 4]
mov esi, 2
cmp dword [eax], 0
sete dl
and cl, dl
add eax, 4
dec esi
jne 0x4ac8de
dec edi
jne 0x4ac8d9
test cl, cl
je 0x4acb11
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, ebx
mov dword [eax + 0xc], edx
call fcn.00421d20
test al, al
jne 0x4acb11
mov al, byte [ebx + 0x81]
test al, al
je 0x4ac93f
mov ecx, ebx
call fcn.00421c70
test al, al
je 0x4acb11
mov eax, 1
jmp 0x4acb13
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4acaae
mov ecx, edi
call fcn.00421af0
test al, al
jne 0x4ac967
mov al, byte [ebp + 0xd]
test al, al
je 0x4ac9ba
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
call fcn.00421d20
test al, al
jne 0x4ac9ba
mov al, byte [edi + 0x81]
test al, al
je 0x4ac9b3
mov ecx, edi
call fcn.00421c70
test al, al
jne 0x4ac9b3
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x150], 4
jge 0x4ac9ba
mov eax, 1
jmp 0x4ac9bc
xor eax, eax
mov dl, byte [ebp + 8]
mov ecx, esi
and dl, al
mov byte [ebp + 8], dl
mov edx, dword [esi]
call dword [edx + 0xbc]
test al, al
jne 0x4aca26
test byte [edi + 0x83], 3
je 0x4aca26
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x170]
test al, al
je 0x4ac9fd
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4aca26
mov dword [ebp + 0x14], 0x293a
jmp 0x4aca26
mov al, byte [esi + 0x395]
mov byte [ebp + 8], 0
test al, al
mov eax, dword [ebp + 0x14]
je 0x4aca1b
test eax, eax
jne 0x4aca26
mov dword [ebp + 0x14], 0x294a
jmp 0x4aca26
test eax, eax
jne 0x4aca26
mov dword [ebp + 0x14], 0x2949
mov ecx, dword [esp + 0x68]
mov eax, 2
cmp ecx, eax
jg 0x4aca39
cmp dword [esp + 0x6c], eax
jle 0x4aca65
mov al, byte [esi + 0x394]
push 0
test al, al
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0xa8]
sete cl
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
mov ecx, dword [ecx + 0x360]
call fcn.004366d0
and byte [ebp + 8], al
mov al, byte [esi + 0x394]
mov ebx, dword [esp + 0x20]
test al, al
jne 0x4acb27
test ebx, ebx
je 0x4aca86
mov al, byte [ebx + 0x2c]
test al, al
je 0x4acb27
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x170]
mov ecx, dword [ebp + 0x14]
mov byte [ebp + 8], 0
neg al
sbb eax, eax
and eax, 0x1be
add eax, 0x277c
test ecx, ecx
jne 0x4acb27
mov dword [ebp + 0x14], eax
jmp 0x4acb27
mov ebx, dword [esp + 0x1c]
mov cl, 1
mov edi, 2
lea eax, [ebx + 4]
mov esi, 2
cmp dword [eax], 0
sete dl
and cl, dl
add eax, 4
dec esi
jne 0x4acac1
dec edi
jne 0x4acabc
test cl, cl
je 0x4acb11
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, ebx
mov dword [eax + 0xc], edx
call fcn.00421d20
test al, al
jne 0x4acb11
test byte [ebx + 0x83], 3
jne 0x4acb11
mov eax, 1
jmp 0x4acb13
xor eax, eax
mov cl, byte [ebp + 8]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
and cl, al
mov byte [ebp + 8], cl
mov esi, dword [esp + 0x18]
mov al, byte [ebp + 8]
mov dword [esp + 0x10], 0
test al, al
je 0x4acba4
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x10]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x20]
call fcn.004ad690
test al, al
jne 0x4acb5e
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4acb5e
mov edx, dword [esp + 0x10]
mov dword [ebp + 0x14], edx
mov al, byte [ebp + 8]
test al, al
je 0x4acba4
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x170]
test al, al
je 0x4acba4
test esi, esi
je 0x4acb83
mov al, byte [esi + 0x394]
test al, al
jne 0x4acba4
test ebx, ebx
je 0x4acb92
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x20]
test al, al
jne 0x4acba4
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4acba4
mov dword [ebp + 0x14], 0x293a
mov edi, dword [esp + 0x14]
push 0
mov ecx, edi
call fcn.004ac230
mov al, byte [ebp + 8]
test al, al
jne 0x4acc2e
mov ecx, dword [ebp + 0x10]
lea esi, [edi + 0x440]
lea eax, [esp + 0xa4]
push esi
push eax
push ecx
mov ecx, dword [edi + 0x360]
call fcn.00436d50
test al, al
je 0x4acc2e
mov ecx, dword [esi]
mov dword [esp + 0x18], 0
mov eax, dword [ecx + 8]
cmp eax, ecx
mov dword [esp + 0x18], eax
je 0x4acc1c
mov edx, edi
lea edi, [edx + 0x504]
mov ecx, dword [eax + 0x10]
push edi
push 1
mov eax, dword [ecx]
call dword [eax + 0xd0]
lea ecx, [esp + 0x18]
push ecx
call fcn.004149c0
mov ecx, dword [esi]
mov eax, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
jne 0x4acbf7
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4acc2e
mov dword [ebp + 0x14], 0x293b
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x20]
test al, al
je 0x4ad013
mov al, byte [ebp + 0xd]
test al, al
jne 0x4ad013
mov byte [ebp + 8], 0
jmp 0x4ad013
mov edi, dword [esp + 0x1c]
push 1
mov ecx, edi
call fcn.00420ad0
test al, al
jne 0x4acc73
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4acc73
mov dword [ebp + 0x14], 0x2847
mov al, byte [ebp + 0xa]
test al, al
je 0x4accd8
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xa4]
push eax
mov ecx, dword [esi + 0x360]
call fcn.00436c70
test al, al
mov byte [ebp + 8], al
mov dword [esp + 0x10], 0
je 0x4accc6
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x10]
push ecx
push edi
push edx
mov ecx, esi
call fcn.004ad690
test al, al
jne 0x4accc6
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4accc6
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x10]
push 1
mov edx, dword [ecx]
call dword [edx + 0x84]
jmp 0x4ad013
mov al, byte [ebp + 0xb]
test al, al
je 0x4acdbd
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [ebx + 0x35c]
mov dword [eax + 0x12c], ecx
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x14], 0
mov esi, dword [eax]
lea ecx, [eax + 0x74]
call fcn.005aeb90
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebx + 0x35c]
lea edx, [esp + 0x18]
push edx
push eax
call dword [esi + 0x80]
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebp + 0x10]
push eax
add ecx, 0x74
call fcn.005adba0
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x4acd4c
mov ecx, dword [esi + 0x128]
push 0x624a90
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
jne 0x4acd4e
xor esi, esi
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
sub esp, 0xc
mov eax, esp
push edi
push esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.004ad230
mov cl, byte [ebp + 8]
and cl, al
mov byte [ebp + 8], cl
je 0x4acdab
mov edx, dword [ebp + 0x10]
push edi
push edx
mov ecx, ebx
call fcn.004ad960
test al, al
jne 0x4acdab
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xc0]
test al, al
je 0x4acdab
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4acdab
mov dword [ebp + 0x14], 0x2944
mov ecx, dword [ebp + 0x10]
push 1
mov edx, dword [ecx]
call dword [edx + 0x84]
jmp 0x4ad013
mov al, byte [esp + 0xb0]
mov ebx, dword [esp + 0x14]
test al, al
je 0x4ace2e
mov al, byte [ebx + 0x40c]
test al, al
jne 0x4ace2e
mov eax, dword [ebx + 0x360]
mov ecx, dword [ebx + 0x370]
mov edx, dword [ebp + 0x10]
push 0
sub ecx, dword [eax + 0x10]
lea esi, [ecx + ecx - 4]
and esi, 7
mov dword [edx + 0x12c], esi
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x14], 0
mov ebx, dword [eax]
lea ecx, [eax + 0x74]
call fcn.005aeb90
mov ecx, dword [ebp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
push esi
call dword [ebx + 0x80]
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebp + 0x10]
push eax
add ecx, 0x74
call fcn.005adba0
mov ebx, dword [esp + 0x14]
mov al, byte [ebp + 8]
test al, al
je 0x4acf1d
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x4acec7
mov ecx, dword [esi + 0x128]
push 0x627518
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
je 0x4acec7
mov eax, dword [ebp + 0x10]
mov ecx, esi
mov eax, dword [eax + 0x12c]
push eax
push edi
call fcn.0052eec0
mov esi, eax
cmp esi, 0xffffffff
jne 0x4ace85
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4acec7
mov dword [ebp + 0x14], 0x2915
jmp 0x4acec7
mov ecx, dword [ebp + 0x10]
push 0
mov dword [ecx + 0x12c], esi
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x14], 0
mov ebx, dword [eax]
lea ecx, [eax + 0x74]
call fcn.005aeb90
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x14]
push eax
push edx
push esi
call dword [ebx + 0x80]
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebp + 0x10]
push eax
add ecx, 0x74
call fcn.005adba0
mov ebx, dword [esp + 0x14]
mov al, byte [ebp + 8]
test al, al
je 0x4acf1d
mov edx, dword [ebp + 0x10]
push edi
push edx
mov ecx, ebx
call fcn.004ad960
test al, al
jne 0x4aceef
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4aceef
mov dword [ebp + 0x14], 0x2944
mov al, byte [ebp + 8]
test al, al
je 0x4acf1d
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x20]
test al, al
je 0x4acf1d
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, ebx
call fcn.004b0e50
test al, al
je 0x4acf1d
mov al, byte [ebp + 0xd]
test al, al
jne 0x4acf1d
mov byte [ebp + 8], 0
mov al, byte [ebp + 8]
mov dword [esp + 0x18], 0
test al, al
je 0x4acf52
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x18]
push edx
push edi
push eax
mov ecx, ebx
call fcn.004ad690
test al, al
jne 0x4acf52
mov byte [ebp + 8], al
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4acf52
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0x14], ecx
push 0
mov ecx, ebx
call fcn.004ac230
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx + 0x360]
push 0
lea edx, [esp + 0xa8]
push 0
push edx
push eax
call fcn.004366d0
mov cl, byte [ebp + 8]
and cl, al
mov byte [ebp + 8], cl
jne 0x4ad013
mov edx, dword [ebp + 0x10]
lea edi, [ebx + 0x440]
lea ecx, [esp + 0xa4]
push edi
push ecx
mov ecx, dword [ebx + 0x360]
push edx
call fcn.00436d50
test al, al
je 0x4ad013
mov eax, dword [edi]
mov esi, dword [eax + 8]
cmp esi, eax
je 0x4ad001
add ebx, 0x504
mov ecx, dword [esi + 0x10]
push ebx
push 1
mov eax, dword [ecx]
call dword [eax + 0xd0]
mov ecx, dword [esi + 0xc]
mov eax, esi
test ecx, ecx
je 0x4acfe0
mov eax, ecx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4acff9
mov eax, ecx
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4acfd5
jmp 0x4acff9
mov ecx, dword [esi + 4]
cmp esi, dword [ecx + 0xc]
jne 0x4acff2
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
je 0x4acfe8
cmp dword [eax + 0xc], ecx
je 0x4acff9
mov eax, ecx
mov ecx, dword [edi]
mov esi, eax
cmp eax, ecx
jne 0x4acfb5
mov eax, dword [ebp + 0x14]
mov byte [ebp + 8], 0
test eax, eax
jne 0x4ad013
mov dword [ebp + 0x14], 0x293b
mov al, byte [ebp + 0xa]
test al, al
je 0x4ad0ac
mov ecx, dword [ebp + 0x10]
call fcn.00419cb0
mov ecx, dword [ebp + 0x10]
mov edi, eax
mov esi, dword [ecx + 0x128]
test esi, esi
je 0x4ad049
mov edx, dword [esi]
push 0x624aa8
mov ecx, esi
call dword [edx + 0x1c]
test al, al
je 0x4ad049
mov ecx, esi
jmp 0x4ad04b
xor ecx, ecx
mov eax, dword [ecx]
call dword [eax + 0xa4]
fstp dword [ebp + 4]
mov byte [ebp + 0xc], 0
mov al, byte [edi + 0x83]
test al, 3
je 0x4ad07b
mov ecx, dword [esp + 0x14]
push 3
mov ecx, dword [ecx + 0x360]
call fcn.00439180
fadd dword [ebp + 4]
fstp dword [ebp + 4]
test byte [edi + 0x83], 8
je 0x4ad201
mov edx, dword [ebp + 0x10]
mov byte [ebp + 0xc], 1
mov ecx, dword [edi + 0x4c]
mov eax, dword [edx + 0x128]
cmp eax, ecx
jne 0x4ad201
mov dword [ebp + 4], 0
jmp 0x4ad201
mov al, byte [ebp + 0xb]
test al, al
je 0x4ad201
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x405]
test al, al
jne 0x4ad201
mov edx, dword [ebp + 0x10]
mov esi, dword [edx + 0x128]
test esi, esi
je 0x4ad0ea
mov eax, dword [esi]
push 0x624aa8
mov ecx, esi
call dword [eax + 0x1c]
test al, al
je 0x4ad0ea
mov ecx, esi
jmp 0x4ad0ec
xor ecx, ecx
mov edx, dword [ecx]
call dword [edx + 0xa4]
mov ecx, dword [ebp + 0x10]
mov byte [ebp + 0xc], 0
fstp dword [ebp + 4]
call fcn.00419cb0
mov ecx, dword [ebp + 0x10]
mov esi, eax
mov eax, dword [ecx + 0x12c]
cmp eax, 0xffffffff
jne 0x4ad11a
xor ebx, ebx
jmp 0x4ad19e
cdq
sub eax, edx
sar eax, 1
mov ebx, dword [esi + eax*4 + 0x14]
test ebx, ebx
je 0x4ad19e
mov byte [ebp + 0xc], 1
mov eax, dword [ecx + 0x128]
mov edx, dword [ebx + 0x128]
add eax, 0x98
mov esi, dword [eax]
mov edi, dword [edx + 0x98]
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0x9c]
sub eax, esi
sub ecx, edi
cmp eax, ecx
jne 0x4ad19e
mov ecx, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4ad19e
mov eax, dword [edx]
push 0x624a90
mov ecx, edx
call dword [eax + 0x1c]
test al, al
je 0x4ad19e
mov esi, dword [ebx + 0x128]
test esi, esi
je 0x4ad19e
mov edx, dword [esi]
push 0x624a90
mov ecx, esi
call dword [edx + 0x1c]
test al, al
je 0x4ad19e
mov eax, dword [ebx + 0x160]
mov ecx, dword [esi + 0x170]
cmp eax, ecx
jle 0x4ad19e
mov dword [ebp + 4], 0
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x4ad1b9
mov ecx, dword [esi + 0x128]
push 0x624a48
mov edx, dword [ecx]
call dword [edx + 0x1c]
test al, al
jne 0x4ad1bb
xor esi, esi
test ebx, ebx
je 0x4ad1d3
mov ecx, dword [ebx + 0x128]
push 0x624a48
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
jne 0x4ad1d5
xor ebx, ebx
test esi, esi
je 0x4ad201
test ebx, ebx
je 0x4ad1e5
mov edi, dword [ebx + 0x454]
jmp 0x4ad1e7
xor edi, edi
test edi, edi
mov byte [esi + 0x465], 1
jle 0x4ad1f9
mov ecx, esi
call fcn.00472940
push edi
mov ecx, esi
call fcn.00472e20
mov al, byte [ebp + 8]
test al, al
je 0x4ad213
fld dword [ebp + 4]
push ecx
fchs
fstp dword [esp]
jmp 0x4ad215
push 0
mov ecx, dword [esp + 0x18]
call fcn.004a9610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14