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

Disassembly:
push 0xffffffffffffffff
push 0x5312c3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2ac
push ebx
push ebp
push esi
mov ebx, ecx
xor esi, esi
push edi
lea ecx, [esp + 0x94]
mov dword [esp + 0x1c], esi
call fcn.0050497f
mov dword [esp + 0x2c4], esi
mov dword [esp + 0xa8], 0x53d568
mov dword [esp + 0xac], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], esi
lea ecx, [esp + 0x80]
mov byte [esp + 0x2c4], 1
call fcn.00504d79
mov al, byte [0x5b968c]
mov edi, dword [0x534454]
test al, 1
mov byte [esp + 0x2c4], 2
jne 0x4dad7a
or al, 1
mov byte [0x5b968c], al
call edi
mov dword [0x5b9688], eax
call edi
sub eax, dword [0x5b9688]
cmp eax, 0x927c0
jbe 0x4dada6
push 0xffffffffffffffff
push esi
lea ecx, [ebx + 0x2c]
call fcn.0043fca0
push 0xffffffffffffffff
push esi
lea ecx, [ebx + 0x40]
call fcn.00504a12
call edi
mov dword [0x5b9688], eax
push 0xffffffffffffffff
push esi
lea ecx, [ebx + 0x1c0]
call fcn.004e29f0
mov eax, dword [esp + 0x2e0]
mov edi, dword [esp + 0x2d0]
mov ebp, dword [esp + 0x2cc]
cmp eax, esi
je 0x4dadde
push 1
push 0x64
push eax
mov ecx, ebx
call fcn.004daac0
jmp 0x4db777
mov ecx, dword [ebp + 4]
lea eax, [edi + edi*4]
lea esi, [edi + eax*2]
shl esi, 4
add ecx, esi
mov dword [esp + 0x20], esi
mov al, byte [ecx + 0x84]
cmp al, 1
je 0x4dae2b
cmp al, 4
je 0x4dae2b
mov al, byte [esp + 0x2dc]
test al, al
jne 0x4dae2b
mov al, byte [ecx + 0x85]
test al, al
jne 0x4dae2b
mov ecx, dword [0x5b8ff0]
push 1
call fcn.004898d0
mov edx, dword [ebp + 4]
mov byte [edx + esi + 0x85], 1
mov eax, dword [ebp + 4]
mov dword [esp + 0x3c], 0x14
mov cl, byte [eax + esi + 0x85]
test cl, cl
je 0x4dae49
mov dword [esp + 0x3c], 0x2d
mov eax, dword [0x565124]
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
push 0
mov ecx, ebx
mov byte [esp + 0x2c8], 4
call fcn.004ddc60
mov esi, eax
test esi, esi
mov dword [esp + 0x30], esi
je 0x4db74c
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2cc]
jmp 0x4dae91
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2cc]
mov esi, dword [esp + 0x30]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x50], 0
lea edx, [ecx + edi + 0x40]
lea ecx, [esp + 0x38]
push edx
call fcn.00509924
push 0x5c
lea ecx, [esp + 0x3c]
call fcn.005029c6
cmp eax, 0xffffffff
jne 0x4daec7
push 0x2f
lea ecx, [esp + 0x3c]
call fcn.005029c6
cmp eax, 0xffffffff
je 0x4daf03
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x68]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x40]
call fcn.005028a7
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2c8], 5
call fcn.00509924
lea ecx, [esp + 0x68]
mov byte [esp + 0x2c4], 4
call fcn.005097eb
lea ecx, [esp + 0x38]
call fcn.00509d46
mov edx, dword [ebx + 0x34]
xor eax, eax
test edx, edx
jle 0x4daf28
mov ecx, dword [ebx + 0x30]
cmp dword [ecx], esi
je 0x4dafb7
inc eax
add ecx, 4
cmp eax, edx
jl 0x4daf18
lea eax, [esp + 0x74]
push esi
push eax
lea ecx, [ebx + 8]
call fcn.0049f400
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c8], 6
call fcn.00509924
lea ecx, [esp + 0x74]
mov byte [esp + 0x2c4], 4
call fcn.005097eb
push 0x5c
lea ecx, [esp + 0x2c]
call fcn.005029c6
cmp eax, 0xffffffff
jne 0x4daf79
push 0x2f
lea ecx, [esp + 0x2c]
call fcn.005029c6
cmp eax, 0xffffffff
je 0x4dafcc
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x7c]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.005028a7
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c8], 7
call fcn.00509924
lea ecx, [esp + 0x7c]
mov byte [esp + 0x2c4], 4
call fcn.005097eb
jmp 0x4dafea
mov ecx, dword [ebx + 0x44]
lea edx, [ecx + eax*4]
lea ecx, [esp + 0x28]
push edx
call fcn.00509924
jmp 0x4db14c
push 0x564308
lea ecx, [esp + 0x2c]
call fcn.005029e8
test eax, eax
jne 0x4dafea
push 4
push eax
lea ecx, [esp + 0x30]
call fcn.0050246c
lea ecx, [esp + 0x28]
call fcn.00509d46
mov ebp, dword [ebx + 0x34]
mov dword [esp + 0x4c], ebp
inc ebp
test ebp, ebp
jne 0x4db01f
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4db012
push eax
call fcn.00509e5a
add esp, 4
mov dword [ebx + 0x30], ebp
xor eax, eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x34], eax
jmp 0x4db11e
mov ecx, dword [ebx + 0x30]
test ecx, ecx
jne 0x4db05a
lea edi, [ebp*4]
push edi
call fcn.00509e31
mov edx, eax
mov ecx, edi
mov dword [ebx + 0x30], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebx + 0x38], ebp
mov dword [ebx + 0x34], ebp
jmp 0x4db11a
mov edi, dword [ebx + 0x38]
cmp ebp, edi
jg 0x4db07e
mov eax, dword [ebx + 0x34]
cmp ebp, eax
jle 0x4db076
mov edx, ebp
sub edx, eax
lea eax, [ecx + eax*4]
push edx
push eax
call fcn.004503e0
mov dword [ebx + 0x34], ebp
jmp 0x4db11a
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x4db0a9
mov eax, dword [ebx + 0x34]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x4db09d
mov eax, 4
jmp 0x4db0a9
cmp eax, 0x400
jle 0x4db0a9
mov eax, 0x400
add eax, edi
cmp ebp, eax
mov dword [esp + 0x44], eax
jl 0x4db0b7
mov dword [esp + 0x44], ebp
mov ecx, dword [esp + 0x44]
lea edx, [ecx*4]
push edx
call fcn.00509e31
mov ecx, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
shl ecx, 2
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, ebp
and ecx, 3
add esp, 4
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x78], eax
sub edx, ecx
lea eax, [eax + ecx*4]
push edx
push eax
call fcn.004503e0
mov eax, dword [ebx + 0x30]
push eax
call fcn.00509e5a
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
add esp, 4
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], ebp
mov dword [ebx + 0x38], edx
mov edi, dword [esp + 0x20]
push 0xffffffffffffffff
push ebp
lea ecx, [ebx + 0x40]
call fcn.00504a12
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x30]
shl eax, 2
lea edx, [esp + 0x28]
mov dword [ecx + eax], esi
mov ecx, dword [ebx + 0x44]
push edx
add ecx, eax
call fcn.00509924
mov ebp, dword [esp + 0x2cc]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4db197
mov edx, dword [ebp + 4]
mov al, byte [edx + edi + 0x85]
test al, al
je 0x4db175
mov byte [esp + 0x50], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push esi
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db197
mov byte [0x5b9694], 0
mov eax, dword [0x565124]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
push esi
mov byte [esp + 0x2c8], 9
call dword [0x534578]
test eax, eax
je 0x4db1e3
inc eax
push 1
push eax
push eax
lea ecx, [esp + 0x40]
call fcn.00509c1b
push eax
push esi
call dword [0x5346cc]
push eax
lea ecx, [esp + 0x74]
call fcn.0050238f
mov eax, dword [esp + 0x1c]
or al, 1
mov dword [esp + 0x1c], eax
jmp 0x4db1f1
push 0x567444
lea ecx, [esp + 0x38]
call fcn.00509974
mov al, byte [esp + 0x1c]
mov dword [esp + 0x2c4], 9
test al, 1
je 0x4db217
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x6c]
and al, 0xfe
mov dword [esp + 0x1c], eax
call fcn.005097eb
push 0x400
push 0x400
lea ecx, [esp + 0x48]
call fcn.00509c1b
push eax
push esi
call dword [0x534718]
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x14]
lea eax, [edx + edi + 0x78]
push eax
call fcn.00509560
mov ecx, dword [ebp + 4]
mov byte [esp + 0x2c4], 0xb
lea edx, [ecx + edi + 0x7c]
lea ecx, [esp + 0x24]
push edx
call fcn.00509560
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2c4], 0xc
cmp dword [eax - 8], 5
jle 0x4db28a
mov ecx, dword [esp + 0x34]
push ecx
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
je 0x4db29c
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], 5
jg 0x4db2c7
mov ecx, dword [esp + 0x34]
push ecx
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4db2c3
mov edx, dword [esp + 0x14]
push 1
mov ecx, ebx
mov eax, dword [edx - 8]
add eax, 0xf
push eax
push esi
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db49a
jmp 0x4db493
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 8]
cmp eax, 5
jle 0x4db49a
mov ecx, dword [ebp + 4]
mov cl, byte [ecx + edi + 0x84]
cmp cl, 1
je 0x4db2e7
cmp cl, 4
jne 0x4db310
cmp eax, 5
jle 0x4db49a
mov edx, dword [ebp + 4]
cmp byte [edx + edi + 0x84], 4
jne 0x4db49a
mov al, byte [esp + 0x2dc]
test al, al
jne 0x4db49a
lea eax, [esp + 0x70]
push 5
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x23], 1
call fcn.00502923
mov eax, dword [eax]
lea ecx, [esp + 0x34]
push eax
mov byte [esp + 0x2c8], 0xd
call fcn.005029e8
cmp eax, 0xffffffff
lea ecx, [esp + 0x70]
sete byte [esp + 0x13]
mov byte [esp + 0x2c4], 0xc
call fcn.005097eb
mov al, byte [esp + 0x13]
test al, al
je 0x4db35f
mov byte [esp + 0x1b], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
cmp eax, 5
jle 0x4db3a3
mov cl, byte [esp + 0x1b]
test cl, cl
je 0x4db3a3
dec eax
push 1
push eax
lea ecx, [esp + 0x1c]
call fcn.0050246c
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x34]
push edx
call fcn.005029e8
cmp eax, 0xffffffff
jg 0x4db450
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 8]
cmp eax, 5
jg 0x4db36b
mov eax, dword [esp + 0x2cc]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov al, byte [ecx + edx + 0x84]
cmp al, 2
jb 0x4db49a
cmp al, 4
je 0x4db49a
mov esi, 5
lea eax, [esp + 0x54]
push esi
push eax
lea ecx, [esp + 0x1c]
call fcn.005028a7
mov eax, dword [eax]
lea ecx, [esp + 0x34]
push eax
mov byte [esp + 0x2c8], 0xe
call fcn.005029e8
cmp eax, 0xffffffff
lea ecx, [esp + 0x54]
sete byte [esp + 0x13]
mov byte [esp + 0x2c4], 0xc
call fcn.005097eb
mov cl, byte [esp + 0x13]
test cl, cl
mov ecx, dword [esp + 0x14]
sete byte [esp + 0x1b]
cmp dword [ecx - 8], esi
jle 0x4db49a
mov al, byte [esp + 0x1b]
test al, al
je 0x4db49a
push 1
push 0
lea ecx, [esp + 0x1c]
call fcn.0050246c
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x34]
push edx
call fcn.005029e8
cmp eax, 0xffffffff
jg 0x4db471
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], esi
jg 0x4db41d
jmp 0x4db49a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
push 1
mov eax, dword [ecx - 8]
mov ecx, ebx
push eax
push edx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db49a
jmp 0x4db493
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
push 1
mov eax, dword [ecx - 8]
mov ecx, ebx
add eax, 0xfffffffe
push eax
push edx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db49a
mov byte [0x5b9694], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 8]
test ecx, ecx
jle 0x4db64b
mov ecx, dword [esp + 0x40]
push ecx
push eax
call fcn.004f0fee
mov edx, dword [esp + 0x2c]
add esp, 8
test eax, eax
jne 0x4db4f6
mov eax, dword [edx - 8]
push 0
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul qword [0x53d598]
call fcn.004f1438
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db64b
jmp 0x4db644
mov eax, dword [edx - 8]
mov esi, 5
cmp eax, esi
jle 0x4db64b
lea eax, [esp + 0x48]
push esi
push eax
lea ecx, [esp + 0x2c]
call fcn.00502923
mov eax, dword [eax]
lea ecx, [esp + 0x40]
push eax
mov byte [esp + 0x2c8], 0xf
call fcn.005029e8
cmp eax, 0xffffffff
lea ecx, [esp + 0x48]
sete byte [esp + 0x13]
mov byte [esp + 0x2c4], 0xc
call fcn.005097eb
mov al, byte [esp + 0x13]
test al, al
jne 0x4db59d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 8]
cmp eax, esi
jle 0x4db59d
dec eax
push 1
push eax
lea ecx, [esp + 0x2c]
call fcn.0050246c
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x40]
push edx
call fcn.005029e8
cmp eax, 0xffffffff
jle 0x4db54a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
push 1
mov eax, dword [eax - 8]
push eax
push ecx
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db64b
jmp 0x4db644
lea edx, [esp + 0x2c]
push esi
push edx
lea ecx, [esp + 0x2c]
call fcn.005028a7
mov eax, dword [eax]
lea ecx, [esp + 0x40]
push eax
mov byte [esp + 0x2c8], 0x10
call fcn.005029e8
cmp eax, 0xffffffff
lea ecx, [esp + 0x2c]
sete byte [esp + 0x13]
mov byte [esp + 0x2c4], 0xc
call fcn.005097eb
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x24]
test dl, dl
mov ecx, dword [eax - 8]
sete byte [esp + 0x13]
cmp ecx, esi
jle 0x4db64b
mov al, byte [esp + 0x13]
test al, al
je 0x4db64b
push 1
push 0
lea ecx, [esp + 0x2c]
call fcn.0050246c
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
call fcn.005029e8
cmp eax, 0xffffffff
jg 0x4db622
mov edx, dword [esp + 0x24]
cmp dword [edx - 8], esi
jg 0x4db5ef
jmp 0x4db64b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
push 1
mov eax, dword [eax - 8]
add eax, 0xfffffffe
push eax
push ecx
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db64b
mov byte [0x5b9694], 0
mov ebp, dword [esp + 0x30]
lea edx, [esp + 0x58]
push edx
push ebp
call dword [0x534794]
mov eax, dword [esp + 0x2cc]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx + 0x14]
add ecx, edx
add eax, dword [ecx + 0xc]
cdq
sub eax, edx
mov edx, dword [ecx + 0x10]
mov esi, eax
mov eax, dword [ecx + 0x18]
add eax, edx
mov ecx, dword [esp + 0x5c]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
add eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x60]
add eax, edx
cdq
sar edi, 1
sar ecx, 1
sub eax, edx
sub ecx, edi
sar esi, 1
sar eax, 1
sub eax, esi
mov edx, ecx
imul eax, eax
imul edx, ecx
add eax, edx
mov ecx, 0x15f90
sub ecx, eax
mov eax, 0x7482296b
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add edx, eax
test edx, edx
jle 0x4db6ed
push 0
push edx
push ebp
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4db6ed
mov byte [0x5b9694], 0
lea ecx, [esp + 0x24]
mov byte [esp + 0x2c4], 0xb
call fcn.005097eb
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c4], 9
call fcn.005097eb
lea ecx, [esp + 0x40]
mov byte [esp + 0x2c4], 8
call fcn.005097eb
lea ecx, [esp + 0x34]
mov byte [esp + 0x2c4], 4
call fcn.005097eb
push ebp
mov ecx, ebx
call fcn.004ddc60
test eax, eax
mov dword [esp + 0x30], eax
jne 0x4dae82
mov edi, dword [esp + 0x2d0]
lea ecx, [esp + 0x38]
mov byte [esp + 0x2c4], 3
call fcn.005097eb
lea ecx, [esp + 0x28]
mov byte [esp + 0x2c4], 2
call fcn.005097eb
mov ebp, dword [esp + 0x2cc]
xor esi, esi
push 0xffffffffffffffff
push esi
lea ecx, [ebx + 0x1d4]
call fcn.004e2d20
mov edx, dword [ebp + 4]
lea ecx, [edi + edi*4]
push str._____
lea eax, [edi + ecx*2]
shl eax, 4
mov dword [esp + 0x24], eax
lea eax, [edx + eax + 0x60]
mov eax, dword [eax]
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
je 0x4dbc3f
mov eax, dword [ebx + 0x1c8]
mov dword [esp + 0x3c], 0
test eax, eax
jle 0x4dbaac
mov dword [esp + 0x1c], 0
mov eax, dword [ebx + 0x1c4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + eax + 4]
call dword [0x53466c]
cmp esi, eax
je 0x4dba8a
push 0
push esi
mov ecx, ebx
call fcn.004ddbf0
mov ebp, eax
test ebp, ebp
je 0x4dba8a
lea edx, [esp + 0xbc]
push 0x64
push edx
push ebp
call dword [0x534718]
mov edi, dword [esp + 0x2cc]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0xbc]
mov eax, dword [edi + 4]
push ecx
lea eax, [eax + esi + 0x54]
mov eax, dword [eax]
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4dba69
push ebp
mov dword [esp + 0x18], 8
call dword [0x5347d0]
test eax, eax
je 0x4db86e
push 0
push 0x64
lea edx, [esp + 0xc4]
push 0
push edx
push 0x1ff
push 0xd
push ebp
call dword [0x534784]
jmp 0x4db8a2
mov edi, 0x567444
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xbc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x2cc]
mov esi, dword [esp + 0x20]
mov ecx, dword [edi + 4]
lea edx, [esp + 0xbc]
push edx
lea eax, [ecx + esi + 0x50]
mov eax, dword [ecx + esi + 0x50]
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4db8ca
mov dword [esp + 0x14], 0xc
mov eax, dword [edi + 4]
lea edx, [esp + 0x48]
push ebp
push edx
lea ecx, [eax + esi + 0x60]
mov dword [esp + 0x34], ecx
mov ecx, ebx
call fcn.004d9ef0
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [ecx]
push ecx
push eax
call fcn.004f0fee
add esp, 8
lea ecx, [esp + 0x48]
test eax, eax
sete byte [esp + 0x13]
call fcn.005097eb
mov al, byte [esp + 0x13]
test al, al
je 0x4db911
add dword [esp + 0x14], 3
mov eax, dword [edi + 4]
push 0xffffffffffffffec
add eax, esi
push ebp
mov dword [esp + 0x34], eax
call dword [0x53477c]
mov edx, dword [esp + 0x2c]
cmp eax, dword [edx + 0x70]
jne 0x4db931
add dword [esp + 0x14], 3
mov eax, dword [edi + 4]
push 0xfffffffffffffff0
add eax, esi
push ebp
mov dword [esp + 0x34], eax
call dword [0x53477c]
mov ecx, dword [esp + 0x2c]
cmp eax, dword [ecx + 0x74]
jne 0x4db951
add dword [esp + 0x14], 3
mov eax, dword [edi + 4]
push ebp
add eax, esi
mov dword [esp + 0x30], eax
call dword [0x5346d4]
mov edx, dword [esp + 0x2c]
cmp eax, dword [edx + 0x6c]
jne 0x4db97a
mov eax, dword [edi + 4]
mov ecx, dword [eax + esi + 0x6c]
test ecx, ecx
je 0x4db97a
add dword [esp + 0x14], 8
push ebp
call dword [0x53471c]
test eax, eax
je 0x4db995
mov ecx, dword [edi + 4]
mov eax, dword [ecx + esi + 0x64]
test eax, eax
je 0x4db995
add dword [esp + 0x14], 4
push ebp
call dword [0x53471c]
test eax, eax
jne 0x4db9b0
mov edx, dword [edi + 4]
mov eax, dword [edx + esi + 0x64]
test eax, eax
jne 0x4db9b0
add dword [esp + 0x14], 4
cmp dword [esp + 0x14], 3
jle 0x4dba47
lea eax, [esp + 0x58]
push eax
push ebp
call dword [0x534794]
mov ecx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov edi, dword [edx + eax + 0x1c]
lea ecx, [edx + eax]
mov eax, dword [edx + eax + 0x24]
add eax, edi
cdq
sub eax, edx
mov edx, dword [ecx + 0x20]
mov esi, eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [esp + 0x64]
add eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x5c]
mov edi, eax
lea eax, [edx + ecx]
cdq
sub eax, edx
mov edx, dword [esp + 0x60]
mov ecx, eax
mov eax, dword [esp + 0x58]
add eax, edx
cdq
sar edi, 1
sar ecx, 1
sub eax, edx
sub ecx, edi
sar esi, 1
sar eax, 1
sub eax, esi
mov edx, ecx
imul eax, eax
imul edx, ecx
add eax, edx
mov ecx, 0x15f90
sub ecx, eax
mov eax, 0x45e7b273
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add edx, eax
jns 0x4dba43
xor edx, edx
add dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4dba69
mov edx, dword [ebx + 0x1c4]
mov ecx, eax
mov eax, dword [esp + 0x1c]
push ecx
push ebp
mov ecx, dword [eax + edx + 4]
push ecx
mov ecx, ebx
call fcn.004da840
mov edx, dword [ebx + 0x1c4]
mov eax, dword [esp + 0x1c]
push ebp
mov ecx, dword [eax + edx + 4]
push ecx
mov ecx, ebx
call fcn.004ddbf0
mov ebp, eax
test ebp, ebp
jne 0x4db7ff
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x1c8]
inc eax
add edx, 0x10
cmp eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], edx
jl 0x4db7cf
mov edi, dword [esp + 0x2cc]
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 4]
add eax, edx
mov ecx, dword [eax + 0x54]
cmp dword [ecx - 8], 9
jg 0x4dbad2
mov edx, dword [eax + 0x50]
cmp dword [edx - 8], 0xb
jle 0x4dbc3f
mov eax, dword [eax + 0x54]
push 0x5601b4
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4dbc3f
call dword [0x53466c]
push 5
push eax
call dword [0x53470c]
mov esi, eax
test esi, esi
je 0x4dbc3f
mov ebp, dword [esp + 0x2d0]
push 0
push 1
push ebp
mov ecx, edi
call fcn.0043eac0
xor ecx, ecx
mov cl, byte [eax + 0x44]
push ecx
push ebp
mov ecx, edi
call fcn.0043eac0
push ecx
add eax, 0x50
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00509560
push ebp
mov ecx, edi
mov byte [esp + 0x2d8], 0x11
call fcn.0043eac0
push ecx
add eax, 0x54
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00509560
push ebp
mov ecx, edi
mov byte [esp + 0x2dc], 0x12
call fcn.0043eac0
push ecx
add eax, 0x60
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.00509560
push esi
mov ecx, ebx
mov byte [esp + 0x2e0], 2
call fcn.004da0c0
test eax, eax
mov dword [esp + 0x48], eax
jne 0x4dbba5
push 2
push esi
call dword [0x53470c]
mov esi, eax
test esi, esi
jne 0x4dbb0b
jmp 0x4dbc3f
lea edx, [esp + 0x2c]
push esi
push edx
lea ecx, [ebx + 0x78]
call fcn.004d3c00
mov ecx, dword [edi + 4]
mov ebp, dword [esp + 0x20]
mov eax, dword [eax]
lea ecx, [ecx + ebp + 0x78]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.004f0fee
add esp, 8
test eax, eax
je 0x4dbbee
mov edx, dword [edi + 4]
mov al, byte [edx + ebp + 0x84]
cmp al, 1
je 0x4dbbe7
cmp al, 4
sete al
test al, al
je 0x4dbbee
mov byte [esp + 0x1b], 1
jmp 0x4dbbf3
mov byte [esp + 0x1b], 0
lea ecx, [esp + 0x2c]
call fcn.005097eb
mov al, byte [esp + 0x1b]
test al, al
jne 0x4dbc3f
push 0
push 0xa
push esi
mov ecx, ebx
call fcn.004daac0
mov al, byte [0x5b9694]
test al, al
je 0x4dbc20
mov byte [0x5b9694], 0
mov eax, dword [esp + 0x48]
push 0xf
push eax
push esi
mov ecx, ebx
call fcn.004da840
mov al, byte [0x5b9694]
test al, al
je 0x4dbc3f
mov byte [0x5b9694], 0
mov ecx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x20]
xor ebp, ebp
push str._____
mov edx, dword [ecx + 4]
mov dword [esp + 0x20], ebp
or esi, 0xffffffff
lea eax, [edx + eax + 0x60]
mov eax, dword [eax]
push eax
call fcn.004f0fee
add esp, 8
test eax, eax
jne 0x4dbd70
mov eax, dword [ebx + 0x1c8]
xor edi, edi
test eax, eax
jle 0x4dbd4b
mov eax, dword [ebx + 0x1c4]
mov dword [esp + 0x3c], eax
add eax, 8
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x2d4]
cmp eax, ecx
jle 0x4dbcc9
mov dl, byte [esp + 0x2dc]
mov cl, 1
test dl, dl
je 0x4dbcbd
mov edx, dword [esp + 0x1c]
cmp byte [edx + 4], 0
jne 0x4dbcbd
xor cl, cl
cmp eax, ebp
jle 0x4dbcc9
test cl, cl
je 0x4dbcc9
mov ebp, eax
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x1c8]
inc edi
add ecx, 0x10
cmp edi, eax
mov dword [esp + 0x1c], ecx
jl 0x4dbc93
test ebp, ebp
je 0x4dbd46
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2cc]
shl esi, 4
mov edx, dword [ecx + 4]
mov byte [esp + 0x2c4], 1
mov edi, dword [esi + eax + 4]
mov eax, dword [esp + 0x20]
mov dword [edx + eax + 0x80], edi
mov edx, dword [ebx + 0x1c4]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + edx + 4]
mov dword [ecx + eax + 0x5c], edx
lea ecx, [esp + 0x80]
call fcn.00504dac
lea ecx, [esp + 0x94]
mov dword [esp + 0x2c4], 0xffffffff
call fcn.005049b2
xor eax, eax
jmp 0x4dbef6
cmp esi, 0xffffffff
jne 0x4dbd5f
mov byte [esp + 0x2c4], 1
lea ecx, [esp + 0x80]
jmp 0x4dbeb2
mov eax, dword [esp + 0x3c]
shl esi, 4
cmp dword [esi + eax + 8], 0xa
jmp 0x4dbea1
mov eax, dword [ebx + 0x1dc]
mov dword [esp + 0x44], ebp
cmp eax, ebp
jle 0x4dbe70
xor edi, edi
mov edx, dword [ebx + 0x1d8]
lea ecx, [esp + 0x13]
push ecx
mov ecx, ebx
mov eax, dword [edi + edx]
push eax
call fcn.004daa60
mov cl, byte [esp + 0x2dc]
mov ebp, eax
test cl, cl
mov al, 1
je 0x4dbdb3
mov cl, byte [esp + 0x13]
test cl, cl
jne 0x4dbdb3
xor al, al
cmp ebp, dword [esp + 0x2d4]
jl 0x4dbde6
mov ecx, dword [ebx + 0x1d8]
mov edx, dword [esp + 0x2d8]
mov ecx, dword [edi + ecx + 8]
cmp ecx, edx
jl 0x4dbde6
test al, al
je 0x4dbde6
imul ecx, ebp
cmp ecx, dword [esp + 0x1c]
jle 0x4dbde6
mov esi, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x1dc]
inc eax
add edi, 0xc
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x4dbd84
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4dbe6b
mov ecx, dword [ebx + 0x1d8]
mov edx, dword [esp + 0x2cc]
lea eax, [esi + esi*2]
mov byte [esp + 0x2c4], 1
mov esi, dword [edx + 4]
shl eax, 2
mov edi, dword [ecx + eax]
mov ecx, dword [esp + 0x20]
mov dword [esi + ecx + 0x80], edi
mov esi, dword [ebx + 0x1d8]
mov edx, dword [edx + 4]
mov eax, dword [esi + eax + 4]
mov dword [edx + ecx + 0x5c], eax
lea ecx, [esp + 0x80]
call fcn.00504dac
lea ecx, [esp + 0x94]
mov dword [esp + 0x2c4], 0xffffffff
call fcn.005049b2
xor eax, eax
jmp 0x4dbef6
cmp esi, 0xffffffff
jne 0x4dbe81
mov byte [esp + 0x2c4], 1
lea ecx, [esp + 0x80]
jmp 0x4dbeb2
mov eax, dword [ebx + 0x1d8]
lea ecx, [esp + 0x13]
lea edx, [esi + esi*2]
push ecx
mov ecx, dword [eax + edx*4]
push ecx
mov ecx, ebx
call fcn.004daa60
cmp eax, dword [esp + 0x2d4]
mov byte [esp + 0x2c4], 1
lea ecx, [esp + 0x80]
jge 0x4dbed5
call fcn.00504dac
lea ecx, [esp + 0x94]
mov dword [esp + 0x2c4], 0xffffffff
call fcn.005049b2
mov eax, 1
jmp 0x4dbef6
call fcn.00504dac
lea ecx, [esp + 0x94]
mov dword [esp + 0x2c4], 0xffffffff
call fcn.005049b2
mov eax, 2
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2b8
ret 0x1c