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

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x18]
push ebp
push esi
cmp ecx, eax
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], eax
jne 0x53b441
mov eax, dword [0x6034c4]
test eax, eax
jne 0x53b441
mov eax, dword [ebx]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 8]
test eax, eax
je 0x53b441
mov edx, ecx
push edx
push ebx
call fcn.00532e10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x53b441
xor ecx, ecx
mov edx, dword [ebp]
mov cl, byte [ebp + 0x1d]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [esp + 0x34]
shl eax, 4
add eax, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
push eax
push 0
push edx
push 0x12
push ebx
call fcn.005326d0
add esp, 0x14
test eax, eax
jne 0x53b441
push eax
push 0x6a
push ebp
push ebx
call fcn.0052bb50
mov edx, dword [ebp + 0x18]
xor ecx, ecx
test edx, edx
push eax
push ebp
setne cl
push ebx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x44], ecx
call fcn.00532e70
add esp, 0x1c
test eax, eax
jne 0x53b441
mov eax, dword [esp + 0x28]
test eax, eax
je 0x53a82a
push ebp
push ebx
call fcn.0051eeb0
add esp, 8
test eax, eax
jne 0x53b441
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x53a84a
push esi
push ebx
call fcn.0051e590
add esp, 8
test eax, eax
jne 0x53b441
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x53a831
push ebx
call fcn.0052cee0
mov esi, eax
add esp, 4
test esi, esi
je 0x53b441
mov al, byte [ebx + 0x13]
test al, al
jne 0x53a86d
push esi
call fcn.0051c560
add esp, 4
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x53a887
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x53a887
xor eax, eax
jmp 0x53a88c
mov eax, 1
xor edx, edx
mov dl, byte [ebp + 0x1d]
push edx
push eax
push ebx
call fcn.005206f0
mov eax, dword [esp + 0x8c]
add esp, 0xc
test eax, eax
je 0x53a8b2
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x2c], eax
inc eax
mov dword [ebx + 0x1c], eax
mov al, byte [ebp + 0x21]
test al, al
je 0x53a9bd
mov edi, dword [ebx + 0x1c]
push esi
call fcn.0051a770
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x5c], eax
inc eax
mov dword [esp + 0x34], eax
inc eax
mov dword [ebx + 0x20], eax
xor eax, eax
mov al, byte [ebp + 0x1d]
push 0
push eax
push 0x31
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x64]
mov eax, dword [edx + 0x14]
push eax
push edi
push 0xf
push esi
call fcn.0051a5e0
push 2
push edi
push 0x6a
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x58]
lea eax, [ecx + 0xd]
push eax
push edi
push 0x7e
push esi
call fcn.0051a5e0
add esp, 0x44
push 0
push edi
push 2
push esi
call fcn.0051a5e0
mov edx, dword [ebp]
push 0
push edx
push 0
push 0
push 0x5c
push esi
call fcn.0051a6c0
mov eax, dword [esp + 0x4c]
add eax, 0xc
push eax
push 0x6f01
push 0x48
push esi
call fcn.0051a5e0
push 0
push edi
push 0x26
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0xa0]
add esp, 0x48
push 1
push ecx
push 0x7d
push esi
call fcn.0051a5e0
push 1
push edi
push 2
push esi
call fcn.0051a5e0
mov edx, dword [esp + 0x50]
push 1
push edx
push 0x7d
push esi
call fcn.0051a5e0
mov eax, dword [esp + 0x54]
add eax, 0xd
push eax
push 0
push 0x62
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x64]
add esp, 0x40
add ecx, 4
push ecx
push edi
push 0x6f
push esi
call fcn.0051a5e0
push 0
push edi
push 0x1e
push esi
call fcn.0051a5e0
add esp, 0x20
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x53ab45
push 0
push 0
push 0x62
push esi
call fcn.0051a5e0
mov edi, eax
push esi
mov dword [esp + 0x4c], edi
call fcn.0051a770
push esi
mov dword [esp + 0x54], eax
call fcn.0051a700
mov edx, dword [esp + 0xa4]
push 0
push 0
push 0
push 0
push eax
push 0xb
push edx
push ebx
mov dword [esp + 0x78], eax
call fcn.0052d1c0
add esp, 0x38
test eax, eax
jne 0x53b441
mov eax, dword [ebx + 0x18]
test eax, eax
jne 0x53b441
mov eax, dword [0x6034c4]
test eax, eax
jne 0x53b441
push esi
call fcn.0051a700
push eax
push 0
push 0x62
push esi
mov dword [esp + 0x58], eax
call fcn.0051a5e0
mov eax, dword [esp + 0xa0]
add esp, 0x14
mov ecx, dword [eax]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x80]
test ecx, ecx
mov dword [esp + 0x10], edx
jne 0x53aa7b
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov dl, byte [ebp + 0x1d]
push ecx
push edx
push eax
call fcn.0053b480
add esp, 0xc
test eax, eax
je 0x53ab32
mov edi, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x40]
push ecx
push esi
lea eax, [edi + 1]
mov dword [esp + 0x24], 1
mov dword [esp + 0x20], edi
mov dword [ebx + 0x1c], eax
call fcn.0051a750
mov edx, dword [esp + 0x18]
push 0
push edx
push 0x5d
push esi
call fcn.0051a5e0
push ebp
push esi
call fcn.0053a6b0
push 0
push edi
push 0x19
push esi
call fcn.0051a5e0
push 0
push 1
push 0x68
push esi
call fcn.0051a5e0
add esp, 0x40
push 0
push edi
push 0x74
push esi
call fcn.0051a5e0
push 0
push 0
push 0x18
push esi
call fcn.0051a5e0
push esi
call fcn.0051a770
push eax
mov eax, dword [esp + 0x60]
push eax
push esi
call fcn.0051a860
push 0
push edi
push 0x79
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x50]
add esp, 0x40
push ecx
push edi
push 0x6a
push esi
call fcn.0051a5e0
mov edx, dword [esp + 0x4c]
push edx
push 0
push 0x62
push esi
call fcn.0051a5e0
mov eax, dword [esp + 0x64]
push eax
push esi
call fcn.0051a750
add esp, 0x28
jmp 0x53abb4
push esi
call fcn.0051a770
push eax
push edi
push esi
call fcn.0051a860
add esp, 0x10
jmp 0x53abb4
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x5c]
mov dword [esp + 0x18], 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x88]
xor edi, edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x1c], edi
mov eax, dword [ecx]
cmp eax, edi
mov dword [esp + 0x10], eax
jle 0x53abb4
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov edx, dword [eax + ecx]
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.00530710
add esp, 8
test eax, eax
jne 0x53b441
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
inc edi
add ecx, 0xc
cmp edi, eax
mov dword [esp + 0x24], ecx
jl 0x53ab79
mov ecx, dword [esp + 0x90]
test ecx, ecx
jne 0x53abed
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x53ad12
push ecx
mov ecx, dword [esp + 0x88]
push eax
push 0
push ecx
push 0x5cc4c8
push ebx
call fcn.00514ac0
add esp, 0x18
jmp 0x53b441
mov edx, dword [ecx]
mov eax, dword [esp + 0x10]
cmp eax, edx
je 0x53ac0c
push edx
push eax
push 0x5cc4ac
push ebx
call fcn.00514ac0
add esp, 0x10
jmp 0x53b441
xor eax, eax
test edx, edx
jle 0x53ac23
or edx, 0xffffffff
mov edi, dword [ecx + 8]
inc eax
mov dword [edi + eax*8 - 4], edx
mov edi, dword [ecx]
cmp eax, edi
jl 0x53ac15
mov eax, dword [ecx]
mov dword [esp + 0x24], 0
test eax, eax
jle 0x53ad19
mov eax, dword [ebp + 4]
xor edi, edi
test eax, eax
jle 0x53ac9d
mov dword [esp + 0x38], edi
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x38]
mov ecx, dword [edx + eax]
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 8]
mov edx, dword [eax + ecx*8]
push edx
call fcn.00514bc0
add esp, 8
test eax, eax
je 0x53ac80
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 4]
inc edi
add ecx, 0x14
cmp edi, eax
mov dword [esp + 0x38], ecx
jl 0x53ac42
jmp 0x53ac9d
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x24]
mov dword [ecx + eax*8 + 4], edi
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jne 0x53ac9d
mov dword [esp + 0x20], eax
cmp edi, dword [ebp + 4]
jl 0x53acc4
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [eax + edi*8]
push ecx
call fcn.005306c0
add esp, 4
test eax, eax
je 0x53ace0
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x24]
inc eax
mov ecx, dword [edx]
mov dword [esp + 0x24], eax
cmp eax, ecx
jl 0x53ac35
jmp 0x53ad19
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x84]
mov edx, dword [ecx + edi*8]
push edx
push 0
push eax
push 0x5cc48c
push ebx
call fcn.00514ac0
mov eax, dword [ebx + 0x18]
add esp, 0x14
inc eax
mov dword [ebx + 0x18], eax
jmp 0x53b441
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x80]
test eax, eax
je 0x53ad43
mov edi, dword [esp + 0x2c]
push 0
push edi
push 0x7a
push esi
call fcn.0051a5e0
mov edx, dword [ebp + 4]
push edx
push edi
push 0x6a
push esi
call fcn.0051a5e0
add esp, 0x20
mov eax, dword [esp + 0x34]
test byte [eax + 8], 0x80
je 0x53ad74
mov edi, dword [ebx + 0x20]
push 0
push 0
push 0x31
lea ecx, [edi + 1]
push esi
mov dword [esp + 0x58], edi
mov dword [ebx + 0x20], ecx
call fcn.0051a5e0
push 1
push edi
push 0x7d
push esi
call fcn.0051a5e0
add esp, 0x20
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x53ad93
mov eax, dword [ebx + 0x1c]
push 9
push eax
push ebp
push ebx
mov dword [esp + 0x24], eax
call fcn.0053bce0
add esp, 0x10
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x53adc2
push esi
call fcn.0051a700
mov edx, dword [esp + 0x1c]
push eax
push edx
push 0x7e
push esi
mov dword [esp + 0x64], eax
call fcn.0051a5e0
push esi
call fcn.0051a770
add esp, 0x18
mov dword [esp + 0x4c], eax
jmp 0x53adea
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x53adea
mov eax, dword [esp + 0x3c]
push eax
push 0
push 0x62
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x50]
push ecx
push esi
call fcn.0051a750
add esp, 0x18
push esi
call fcn.0051a700
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x84]
add esp, 4
test al, 1
je 0x53af89
mov eax, dword [esp + 0x20]
test eax, eax
jge 0x53ae1f
push 0
push 0xffffffffffffffff
push 0x31
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53ae88
test edi, edi
je 0x53ae36
mov edx, dword [esp + 0x18]
push eax
push edx
push 2
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53ae88
mov ecx, dword [esp + 0x88]
lea eax, [eax + eax*2]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax*4]
push eax
push ebx
call fcn.005312d0
push esi
call fcn.0051a770
add eax, 3
push eax
push 0xffffffffffffffff
push 0x47
push esi
call fcn.0051a5e0
push 0
push 1
push 0xc
push esi
call fcn.0051a5e0
push 0
push 0xffffffffffffffff
push 0x31
push esi
call fcn.0051a5e0
push 0
push 0
push 0x24
push esi
call fcn.0051a5e0
add esp, 0x4c
mov eax, dword [ebp + 4]
xor edi, edi
cmp eax, edi
jle 0x53af2b
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x90]
test ecx, ecx
jne 0x53aec1
mov eax, edi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x53aefa
mov edx, dword [esp + 0x18]
push eax
push edx
push 2
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53af14
mov edx, dword [ecx]
xor eax, eax
test edx, edx
jle 0x53aee2
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 8]
add ecx, 4
cmp dword [ecx], edi
je 0x53aee2
inc eax
add ecx, 8
cmp eax, edx
jl 0x53aed6
cmp eax, edx
jl 0x53aea6
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + eax + 4]
push ecx
push ebx
call fcn.005312d0
jmp 0x53af11
mov ecx, dword [esp + 0x88]
lea eax, [eax + eax*2]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax*4]
push eax
push ebx
call fcn.00531ca0
add esp, 8
mov ecx, dword [esp + 0x40]
mov eax, dword [ebp + 4]
inc edi
add ecx, 0x14
cmp edi, eax
mov dword [esp + 0x40], ecx
jl 0x53ae99
mov ecx, dword [ebp + 4]
push 0
push ecx
push 0x5d
push esi
call fcn.0051a5e0
mov eax, dword [esp + 0x38]
add esp, 0x10
test eax, eax
jne 0x53af4e
push ebp
push esi
call fcn.0053a6b0
add esp, 8
mov edi, dword [esp + 0x2c]
push 0
push edi
push 0x74
push esi
call fcn.0051a5e0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xa4]
push edx
push eax
push 0xffffffffffffffff
push edi
push ebp
push 1
push 0
push 0x6a
push ebx
call fcn.0052bc20
add esp, 0x34
test eax, eax
jne 0x53b441
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53afb6
test eax, eax
jne 0x53b1af
mov eax, dword [ebx + 0x1c]
push 9
push eax
push ebp
push ebx
mov dword [esp + 0x24], eax
call fcn.0053bce0
add esp, 0x10
jmp 0x53afbe
test eax, eax
jne 0x53b1af
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x53b060
test edi, edi
je 0x53afe1
mov ecx, dword [esp + 0x18]
push eax
push ecx
push 2
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53b01d
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x53b003
mov edx, dword [esp + 0x10]
push 1
sub edx, eax
dec edx
push edx
push 0x61
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53b01d
mov ecx, dword [esp + 0x88]
lea eax, [eax + eax*2]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax*4]
push eax
push ebx
call fcn.005312d0
add esp, 8
push esi
call fcn.0051a770
add eax, 3
push eax
push 0xffffffffffffffff
push 0x47
push esi
call fcn.0051a5e0
push 0
push 1
push 0xc
push esi
call fcn.0051a5e0
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
push edi
push ecx
push 0x19
push esi
call fcn.0051a5e0
push 0
push 0
push 0x24
push esi
call fcn.0051a5e0
add esp, 0x44
jmp 0x53b075
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
push edi
push edx
push 0x19
push esi
call fcn.0051a5e0
add esp, 0x10
mov al, byte [ebp + 0x21]
test al, al
je 0x53b08a
push 0
push edi
push 0x2b
push esi
call fcn.0051a5e0
add esp, 0x10
mov eax, dword [ebp + 4]
xor edi, edi
test eax, eax
jle 0x53b15d
mov dword [esp + 0x40], edi
cmp edi, dword [ebp + 0xc]
jne 0x53b0b4
push 0
push 0
push 0x7b
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53b146
mov ecx, dword [esp + 0x90]
test ecx, ecx
jne 0x53b0dc
mov eax, edi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x53b107
push eax
mov eax, dword [esp + 0x1c]
push eax
push 2
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53b146
mov edx, dword [ecx]
xor eax, eax
test edx, edx
jle 0x53b0f6
mov ecx, dword [ecx + 8]
add ecx, 4
cmp dword [ecx], edi
je 0x53b0f6
inc eax
add ecx, 8
cmp eax, edx
jl 0x53b0ea
cmp eax, edx
jl 0x53b0c1
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + ecx + 4]
jmp 0x53b13c
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x53b12c
mov edx, dword [esp + 0x10]
mov ecx, edi
sub ecx, eax
push 1
add ecx, edx
push ecx
push 0x61
push esi
call fcn.0051a5e0
add esp, 0x10
jmp 0x53b146
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*4]
push edx
push ebx
call fcn.005312d0
add esp, 8
mov ecx, dword [esp + 0x40]
mov eax, dword [ebp + 4]
inc edi
add ecx, 0x14
cmp edi, eax
mov dword [esp + 0x40], ecx
jl 0x53b09b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
xor edx, edx
test eax, eax
push ecx
push 0
setge dl
push edx
push 0
push edi
push ebp
push ebx
call fcn.0053b4f0
mov al, byte [esp + 0xa0]
add esp, 0x20
test al, 2
je 0x53b19a
mov eax, dword [esp + 0x2c]
jmp 0x53b19d
or eax, 0xffffffff
push eax
push 0
push 0
push 0
push edi
push ebp
push ebx
call fcn.0053bbf0
add esp, 0x1c
mov eax, dword [esp + 0x34]
test byte [eax + 8], 0x80
je 0x53b1cb
mov ecx, dword [esp + 0x48]
push 0
push ecx
push 0x2e
push esi
call fcn.0051a5e0
add esp, 0x10
mov eax, dword [esp + 0x80]
test eax, eax
je 0x53b24e
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x53b222
mov edx, dword [esp + 0x14]
push 0
push edx
push 0x1e
push esi
call fcn.0051a5e0
mov edi, dword [ebp + 0x10]
add esp, 0x10
test edi, edi
je 0x53b222
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x40]
push 0
push ecx
push 0x1e
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x50]
mov edi, dword [edi + 0x20]
add esp, 0x10
inc ecx
test edi, edi
mov dword [esp + 0x40], ecx
jne 0x53b200
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x2c]
push edx
push eax
push 0xffffffffffffffff
push ecx
push ebp
push 2
push 0
push 0x6a
push ebx
call fcn.0052bc20
add esp, 0x24
test eax, eax
jne 0x53b441
mov edx, dword [esp + 0x24]
push edx
push esi
call fcn.0051a750
mov eax, dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x53b28e
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
push eax
push edi
push 0x6f
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0x60]
push ecx
push esi
call fcn.0051a750
push 0
push edi
push 0x1e
push esi
call fcn.0051a5e0
jmp 0x53b2bf
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x53b2c2
mov edx, dword [esp + 0x10]
push 0
push edx
push 0xc
push esi
call fcn.0051a5e0
push 0
push 0
push 0x18
push esi
call fcn.0051a5e0
mov eax, dword [esp + 0x64]
push eax
push esi
call fcn.0051a750
add esp, 0x28
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x53b31d
mov ecx, dword [esp + 0x14]
push 0
push ecx
push 0x1e
push esi
call fcn.0051a5e0
mov edi, dword [ebp + 0x10]
add esp, 0x10
test edi, edi
je 0x53b31d
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0x94]
push 0
push eax
push 0x1e
push esi
call fcn.0051a5e0
mov ecx, dword [esp + 0xa4]
mov edi, dword [edi + 0x20]
add esp, 0x10
inc ecx
test edi, edi
mov dword [esp + 0x94], ecx
jne 0x53b2f2
mov al, byte [ebp + 0x21]
test al, al
je 0x53b3f1
mov edi, dword [ebx + 0x1c]
push esi
call fcn.0051a770
xor ecx, ecx
push 0
mov cl, byte [ebp + 0x1d]
mov dword [esp + 0x9c], eax
push ecx
push 0x31
push esi
call fcn.0051a5e0
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0x64]
mov ecx, dword [eax + 0x14]
push ecx
push edi
push 9
push esi
call fcn.0051a5e0
push 2
push edi
push 0x6a
push esi
call fcn.0051a5e0
mov edx, dword [esp + 0x8c]
push 0
push edx
push 1
push esi
call fcn.0051a5e0
mov eax, dword [esp + 0xd8]
add esp, 0x44
add eax, 7
push eax
push 0xffffffffffffffff
push 0x47
push esi
call fcn.0051a5e0
push 0
push 1
push 0xc
push esi
call fcn.0051a5e0
push 0
push edi
push 0x19
push esi
call fcn.0051a5e0
mov ecx, dword [ebp]
push 0
push ecx
push 0
push 0
push 0x5c
push esi
call fcn.0051a6c0
mov edx, dword [esp + 0x78]
add esp, 0x48
push 0
push edx
push 1
push esi
call fcn.0051a5e0
push 0
push 2
push 0x5d
push esi
call fcn.0051a5e0
push 0
push edi
push 0x74
push esi
call fcn.0051a5e0
push 0
push edi
push 0x1e
push esi
call fcn.0051a5e0
add esp, 0x40
mov eax, dword [esp + 0x34]
test byte [eax + 8], 0x80
je 0x53b441
mov al, byte [ebx + 0x13]
test al, al
jne 0x53b441
mov eax, dword [ebx + 0xa0]
test eax, eax
jne 0x53b441
mov ecx, dword [esp + 0x48]
push 0
push ecx
push 1
push esi
call fcn.0051a5e0
push 0
push 1
push 0x3b
push esi
call fcn.0051a5e0
push 1
push esi
call fcn.0051b310
push 0xfffffffffffffffe
push 0x5cc47c
push 0
push esi
call fcn.0051b360
add esp, 0x38
mov edx, dword [esp + 0x84]
push edx
call fcn.00520400
mov eax, dword [esp + 0x8c]
push eax
call fcn.005303e0
mov ecx, dword [esp + 0x94]
push ecx
call fcn.0052c2f0
mov edx, dword [esp + 0x9c]
push edx
call fcn.00520230
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret