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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov byte [ebp - 1], 0
call fcn.004fd350
mov ecx, dword [esi + 0xc]
test ecx, ecx
jbe 0x520036
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
jmp 0x520038
xor eax, eax
xor ebx, ebx
test ecx, ecx
jbe 0x5200b0
mov edi, edi
mov dl, byte [eax + 0x34]
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 0x30]
mov dword [eax + 0x50], esi
mov byte [eax + 0x54], dl
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, edx
and ecx, 0x8000010
xor edi, edi
or ecx, edi
je 0x52006c
mov byte [eax + 0x34], 1
jmp 0x52008e
and edx, 0x4211028
xor ecx, ecx
or edx, ecx
jne 0x520095
cmp esi, 0xffffffff
je 0x52008a
mov esi, dword [esi + 0xc]
and esi, 0x20000
or ecx, esi
jne 0x520095
mov byte [eax + 0x34], 0
mov dword [eax + 0x30], 0xffffffff
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
inc ebx
cmp ebx, ecx
jb 0x5200a6
xor eax, eax
mov ebx, ecx
jmp 0x5200ac
mov edx, dword [eax + 0x38]
mov eax, dword [edx + ebx*4]
cmp ebx, ecx
jb 0x520040
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 8]
lea eax, [ecx - 1]
cmp ecx, eax
jbe 0x5200c8
mov ecx, dword [edx + 0x14]
mov edi, dword [ecx + eax*4]
jmp 0x5200ca
xor edi, edi
mov dword [ebp - 0x1c], eax
cmp eax, dword [edx + 0x10]
jae 0x5204ac
mov ebx, dword [ebp + 8]
test dword [edi + 0x3c], 0xfff00000
je 0x52047c
mov esi, 1
cmp dword [edi + 8], esi
jbe 0x520108
mov eax, dword [edi + 0xc]
mov edx, dword [eax + esi*4]
mov eax, dword [eax]
push 1
push edx
push eax
push ebx
call fcn.00502850
inc esi
cmp esi, dword [edi + 8]
jb 0x5200f0
mov eax, 1
cmp dword [edi + 8], eax
jbe 0x52012c
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov ecx, dword [ecx + eax*4]
mov esi, dword [edx + 0x30]
mov dword [ecx + 0x30], esi
mov dl, byte [edx + 0x34]
inc eax
mov byte [ecx + 0x34], dl
cmp eax, dword [edi + 8]
jb 0x520112
mov ecx, dword [edi + 0x3c]
mov eax, ecx
and eax, 0xfff00000
cmp eax, 0x50700000
ja 0x520155
je 0x52047c
cmp eax, 0x50400000
je 0x52047c
cmp eax, 0x50500000
jmp 0x52015a
cmp eax, 0x50800000
je 0x52047c
cmp eax, 0x20700000
je 0x52045c
cmp eax, 0x11c00000
je 0x52045c
cmp eax, 0x11900000
je 0x52045c
cmp eax, 0x11400000
je 0x52045c
cmp eax, 0x24200000
je 0x52045c
cmp eax, 0x24300000
je 0x52045c
cmp eax, 0x24900000
je 0x52045c
cmp eax, 0x30200000
je 0x52045c
cmp eax, 0x24500000
je 0x52045c
cmp eax, 0x11100000
je 0x5203a0
cmp eax, 0x11500000
je 0x5203a0
mov edx, ecx
and edx, 0xf0000000
cmp edx, 0x10000000
jb 0x5202c5
cmp edx, 0x40000000
ja 0x5202c5
mov eax, dword [edi]
mov esi, ecx
and esi, 0xfffff
xor edx, edx
div esi
and ecx, 0xfff00000
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp ecx, 0x90100000
jne 0x520225
mov eax, 1
mov dword [ebp - 0x14], eax
cmp dword [edi + 8], 0
mov dword [ebp - 8], 0
jbe 0x52047c
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jae 0x5202b0
mov edi, edi
mov edx, dword [edi + 8]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [edi + 0xc]
mov esi, dword [ecx + eax*4]
add edx, eax
mov eax, dword [edi + 4]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x24]
cmp eax, 0xffffffff
je 0x520272
mov ecx, dword [ebp + 8]
push esi
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
mov eax, dword [ebx + 0x20]
cmp eax, 0xffffffff
je 0x52028c
mov ecx, dword [ebp + 8]
push esi
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
mov ecx, dword [ebp + 8]
push 1
push esi
push ebx
push ecx
call fcn.00502850
test eax, eax
jl 0x520d92
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jb 0x520240
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, dword [edi + 8]
jb 0x520236
jmp 0x52047c
cmp dword [edi + 8], 0
je 0x520376
mov dword [ebp - 8], 0
cmp eax, 0x90100000
je 0x5202e4
cmp eax, 0x90000000
jne 0x52033f
and ecx, 0xfffff
mov dword [ebp - 8], ecx
je 0x52033f
xor ebx, ebx
test ecx, ecx
jbe 0x52033f
mov edx, dword [edi + 4]
mov esi, dword [edx + ebx*4]
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x52031a
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
push edx
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
mov eax, dword [esi + 0x20]
cmp eax, 0xffffffff
je 0x520339
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
push edx
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
inc ebx
cmp ebx, dword [ebp - 8]
jb 0x5202f5
mov esi, dword [ebp - 8]
cmp esi, dword [edi]
jae 0x52047c
mov ebx, dword [ebp + 8]
lea ecx, [ecx]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
mov edx, dword [edi + 4]
mov eax, dword [edx + esi*4]
push ecx
push eax
mov ecx, ebx
call fcn.0051fec0
test eax, eax
jl 0x520d92
inc esi
cmp esi, dword [edi]
jb 0x520350
jmp 0x52047c
xor eax, eax
cmp dword [edi], eax
jbe 0x52047c
or ecx, 0xffffffff
mov edx, dword [edi + 4]
mov edx, dword [edx + eax*4]
mov dword [edx + 0x30], ecx
mov edx, dword [edi + 4]
mov edx, dword [edx + eax*4]
inc eax
mov byte [edx + 0x34], 1
cmp eax, dword [edi]
jb 0x520383
jmp 0x52047c
mov eax, dword [edi]
and ecx, 0xfffff
xor edx, edx
div ecx
cmp dword [edi + 8], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], eax
jbe 0x52047c
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0xc], 0
jbe 0x52044a
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [eax + ecx*4]
mov esi, dword [edx + 0x30]
cmp esi, 0xffffffff
je 0x5204be
mov eax, dword [edi + 8]
imul eax, dword [ebp - 0xc]
add eax, ecx
mov ecx, dword [edi + 4]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x24]
cmp eax, 0xffffffff
je 0x52040f
mov ecx, dword [ebp + 8]
push esi
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
mov eax, dword [ebx + 0x20]
cmp eax, 0xffffffff
je 0x520429
mov ecx, dword [ebp + 8]
push esi
push eax
call fcn.0051fec0
test eax, eax
jl 0x520d92
mov edx, dword [ebp + 8]
push 1
push esi
push ebx
push edx
call fcn.00502850
test eax, eax
jl 0x520d92
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jb 0x5203d1
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [edi + 8]
jb 0x5203c0
jmp 0x52047c
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
cmp eax, 0xffffffff
je 0x5204e0
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
push 1
push edx
push eax
push ebx
call fcn.00502850
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
test ecx, ecx
je 0x520497
mov eax, dword [ebx + 0x10]
cmp ecx, eax
jae 0x520497
mov edx, dword [ebx + 0x14]
mov edi, dword [edx + ecx*4 - 4]
dec ecx
jmp 0x52049e
mov eax, dword [ebx + 0x10]
xor edi, edi
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jb 0x5200d9
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
lea eax, [ecx - 1]
cmp ecx, eax
jbe 0x520501
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + eax*4]
jmp 0x520503
mov esi, dword [ebp + 8]
push 0x4456f8
xor ecx, ecx
xor edx, edx
call fcn.004f47c0
add esp, 4
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x4456d0
xor ecx, ecx
xor edx, edx
mov esi, ebx
call fcn.004f47c0
add esp, 4
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor ecx, ecx
mov esi, eax
mov dword [ebp - 0x1c], esi
cmp eax, dword [edx + 0x10]
jae 0x5205b0
mov eax, dword [ecx + 0x3c]
and eax, 0xfff00000
je 0x520589
cmp eax, 0x20700000
je 0x520557
cmp eax, 0x11c00000
je 0x520557
cmp eax, 0x11900000
je 0x520557
cmp eax, 0x11400000
je 0x520557
cmp eax, 0x24200000
je 0x520557
cmp eax, 0x24300000
je 0x520557
cmp eax, 0x24900000
je 0x520557
cmp eax, 0x24500000
jne 0x520589
xor eax, eax
cmp dword [ecx + 8], eax
jbe 0x520589
mov edi, edi
mov esi, dword [ecx + 4]
mov esi, dword [esi + eax*4]
mov esi, dword [esi + 0x30]
cmp esi, 0xffffffff
je 0x5204f3
mov edi, dword [ecx + 0xc]
mov edi, dword [edi + eax*4]
mov ebx, dword [esi + 0x30]
mov dword [edi + 0x30], ebx
mov bl, byte [esi + 0x34]
inc eax
mov byte [edi + 0x34], bl
cmp eax, dword [ecx + 8]
jb 0x520560
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x52059e
mov eax, dword [edx + 0x10]
cmp esi, eax
jae 0x52059e
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + esi*4 - 4]
dec esi
jmp 0x5205a5
mov eax, dword [edx + 0x10]
xor ecx, ecx
mov esi, eax
mov dword [ebp - 0x1c], esi
cmp esi, eax
jb 0x520511
mov ecx, dword [edx + 0x10]
test ecx, ecx
jbe 0x5205be
mov edx, dword [edx + 0x14]
mov eax, dword [edx]
jmp 0x5205c0
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0
test ecx, ecx
jbe 0x520880
mov eax, dword [ebp - 0x20]
mov esi, dword [eax + 0x3c]
mov dword [ebp - 0x14], esi
and esi, 0xfff00000
je 0x520850
cmp esi, 0x50700000
ja 0x520609
je 0x520850
cmp esi, 0x50400000
je 0x520850
cmp esi, 0x50500000
jmp 0x52060f
cmp esi, 0x50800000
je 0x520850
cmp esi, 0x10f00000
je 0x520850
cmp esi, 0x20700000
je 0x520850
cmp esi, 0x11700000
je 0x520850
cmp esi, 0x11900000
je 0x520850
cmp esi, 0x11b00000
je 0x520850
cmp esi, 0x11c00000
je 0x520850
cmp esi, 0x11300000
je 0x520850
cmp esi, 0x11400000
je 0x520850
cmp esi, 0x11600000
je 0x520850
cmp esi, 0x11500000
je 0x520850
cmp esi, 0x24300000
je 0x520850
cmp esi, 0x11e00000
je 0x520850
cmp esi, 0x11f00000
je 0x520850
cmp esi, 0x24800000
je 0x520850
cmp esi, 0x30200000
je 0x520850
cmp esi, 0x24900000
je 0x520850
cmp esi, 0x11000000
je 0x520850
cmp esi, 0x11100000
je 0x520850
cmp esi, 0x24200000
je 0x520850
cmp esi, 0x11800000
je 0x520850
cmp esi, 0x24400000
je 0x520850
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
and eax, 0x4201020
xor ecx, ecx
or eax, ecx
jne 0x520850
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.0051fe90
mov edi, dword [ebx + 0x24]
cmp edi, 0xffffffff
je 0x520762
lea esp, [esp]
lea edx, [ebp - 8]
mov eax, edi
call fcn.0051fe90
mov edi, dword [edi + 0x24]
cmp edi, 0xffffffff
jne 0x520750
mov edi, dword [ebx + 0x20]
cmp edi, 0xffffffff
je 0x520782
lea ebx, [ebx]
lea edx, [ebp - 8]
mov eax, edi
call fcn.0051fe90
mov edi, dword [edi + 0x20]
cmp edi, 0xffffffff
jne 0x520770
xor ecx, ecx
cmp esi, 0x90000000
jne 0x520795
mov ecx, dword [ebp - 0x14]
and ecx, 0xfffff
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
cmp ecx, eax
jae 0x5207fb
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + 4]
sub eax, ecx
lea ebx, [edx + ecx*4]
mov dword [ebp - 0x14], eax
lea esp, [esp]
mov edi, dword [ebx]
mov esi, edi
cmp esi, 0xffffffff
je 0x5207d2
lea esp, [esp]
lea edx, [ebp - 8]
mov eax, esi
call fcn.0051fe90
mov esi, dword [esi + 0x24]
cmp esi, 0xffffffff
jne 0x5207c0
mov esi, edi
cmp esi, 0xffffffff
je 0x5207f2
lea esp, [esp]
lea edx, [ebp - 8]
mov eax, esi
call fcn.0051fe90
mov esi, dword [esi + 0x20]
cmp esi, 0xffffffff
jne 0x5207e0
add ebx, 4
sub dword [ebp - 0x14], 1
jne 0x5207b0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
cmp eax, edx
jbe 0x520850
mov edi, dword [ebp - 0x20]
sub eax, edx
mov ebx, eax
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x8000
xor edx, edx
or eax, edx
je 0x520848
xor eax, eax
cmp dword [edi + 8], eax
jbe 0x520848
lea ebx, [ebx]
mov edx, dword [edi + 0xc]
mov esi, dword [edx + eax*4]
mov edx, dword [ecx + 0x30]
mov dword [esi + 0x30], edx
mov dl, byte [ecx + 0x34]
inc eax
mov byte [esi + 0x34], dl
cmp eax, dword [edi + 8]
jb 0x520830
sub ebx, 1
mov ecx, dword [ecx + 0x30]
jne 0x520812
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jb 0x52086f
mov ecx, eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], ecx
jmp 0x520878
mov edx, dword [edx + 0x14]
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0x20], edx
cmp ecx, eax
jb 0x5205d2
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xc]
test esi, esi
jbe 0x520891
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
jmp 0x520893
xor ecx, ecx
xor eax, eax
test esi, esi
jbe 0x5208cf
lea esp, [esp]
mov edx, dword [ecx + 0x50]
cmp edx, dword [ecx + 0x30]
jne 0x5208b0
mov dl, byte [ecx + 0x54]
cmp dl, byte [ecx + 0x34]
je 0x5208b4
mov byte [ebp - 1], 1
inc eax
cmp eax, esi
jb 0x5208bf
xor ecx, ecx
mov eax, esi
jmp 0x5208c5
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + eax*4]
cmp eax, esi
jb 0x5208a0
cmp byte [ebp - 1], 0
jne 0x5208dd
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push edi
call fcn.00509310
test eax, eax
jl 0x520d92
push edi
call fcn.004fd350
mov eax, dword [edi + 0x10]
mov byte [ebp - 1], 0
test eax, eax
jbe 0x520903
mov edx, dword [edi + 0x14]
mov esi, dword [edx]
jmp 0x520905
xor esi, esi
mov dword [ebp - 0x1c], 0
test eax, eax
jbe 0x520a24
mov ecx, dword [esi + 0x3c]
mov eax, ecx
and eax, 0xfff00000
je 0x5209f2
mov ebx, dword [esi]
cmp eax, 0x50700000
ja 0x52093f
je 0x520946
cmp eax, 0x50400000
je 0x520946
cmp eax, 0x50500000
je 0x520946
jmp 0x52096d
cmp eax, 0x50800000
jne 0x52096d
and ecx, 0xfffff
add ecx, ecx
mov ebx, ecx
cmp ebx, 2
jne 0x52096d
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x20000000
xor ecx, ecx
or eax, ecx
je 0x52096d
xor ebx, ebx
xor edi, edi
test ebx, ebx
jbe 0x5209f2
jmp 0x520980
mov eax, dword [esi + 0x3c]
and eax, 0xfff00000
cmp eax, 0x24200000
ja 0x5209af
je 0x5209c8
cmp eax, 0x11c00000
ja 0x5209a8
je 0x5209c8
cmp eax, 0x11400000
je 0x5209c8
cmp eax, 0x11900000
jmp 0x5209c2
cmp eax, 0x20700000
jmp 0x5209c2
cmp eax, 0x24300000
je 0x5209c8
cmp eax, 0x24500000
je 0x5209c8
cmp eax, 0x24900000
mov byte [ebp - 0x14], 0
jne 0x5209cc
mov byte [ebp - 0x14], 1
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
push edx
mov edx, dword [esi + 4]
mov eax, dword [edx + edi*4]
push ecx
mov ecx, dword [ebp + 8]
push eax
call fcn.0051ff10
test eax, eax
jge 0x5209ed
mov byte [ebp - 1], 1
inc edi
cmp edi, ebx
jb 0x520980
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jb 0x520a0c
mov ecx, eax
xor esi, esi
mov dword [ebp - 0x1c], ecx
jmp 0x520a12
mov edx, dword [edx + 0x14]
mov esi, dword [edx + ecx*4]
cmp ecx, eax
jb 0x520914
cmp byte [ebp - 1], 0
jne 0x5204f3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov byte [ebp - 1], 1
mov dword [ebp - 8], 1
mov dword [ebp - 0x14], eax
cmp eax, 1
jbe 0x520bd8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
mov eax, dword [ebp - 8]
mov ebx, dword [edx + eax*4]
mov ecx, dword [edx + eax*4 - 4]
lea eax, [edx + eax*4]
mov eax, dword [ebx]
xor edi, edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
test eax, eax
jbe 0x520ac1
mov edx, dword [ebx + 4]
mov esi, eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x68]
cmp eax, 0xffffffff
je 0x520a77
cmp eax, edi
jbe 0x520a77
mov edi, eax
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x520a8d
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520a8d
cmp eax, edi
jbe 0x520a8d
mov edi, eax
mov eax, dword [ecx + 0x24]
cmp eax, 0xffffffff
je 0x520aa3
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520aa3
cmp eax, edi
jbe 0x520aa3
mov edi, eax
mov eax, dword [ecx + 0x30]
cmp eax, 0xffffffff
je 0x520ab9
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520ab9
cmp eax, edi
jbe 0x520ab9
mov edi, eax
add edx, 4
sub esi, 1
jne 0x520a67
mov eax, dword [ebx + 8]
test eax, eax
jbe 0x520af0
mov ecx, dword [ebx + 0xc]
mov edx, eax
lea ecx, [ecx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
cmp eax, 0xffffffff
je 0x520ae8
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520ae8
cmp eax, edi
jbe 0x520ae8
mov edi, eax
add ecx, 4
sub edx, 1
jne 0x520ad0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 8
xor edx, edx
or eax, edx
je 0x520b32
cmp dword [ecx + 0x74], 0xffffffff
mov edx, dword [ecx + 0x68]
jne 0x520b41
mov esi, dword [ebp + 8]
push 0x445720
xor ecx, ecx
xor edx, edx
call fcn.004f47c0
add esp, 4
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ecx + 0x30]
cmp ecx, 0xffffffff
je 0x520bc0
mov edx, dword [ecx + 0x68]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov esi, dword [ecx + 0x78]
cmp eax, 0xffffffff
je 0x520b5c
mov edi, edi
cmp eax, ecx
je 0x520bc0
mov eax, dword [eax + 0x30]
cmp eax, 0xffffffff
jne 0x520b50
cmp eax, ecx
sete al
test al, al
jne 0x520bc0
mov ebx, dword [ebp - 8]
cmp ebx, esi
jae 0x520bc3
cmp ebx, edx
jbe 0x520bc3
cmp edi, edx
ja 0x520b78
mov eax, edx
jmp 0x520b80
mov eax, edi
cmp edi, esi
ja 0x520b80
mov eax, esi
cmp eax, ebx
je 0x520bc3
cmp eax, dword [ebp - 0x14]
jae 0x5204f3
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x14]
mov edx, dword [ecx + eax*4]
push 0
push edx
lea eax, [ebp - 0xc]
push eax
push 1
call fcn.00508f00
test eax, eax
jl 0x520d92
push edi
call fcn.004fd350
test eax, eax
jl 0x520d92
mov byte [ebp - 1], 0
jmp 0x520bc3
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
inc ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], eax
cmp ebx, eax
jb 0x520a41
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x10]
test ebx, ebx
jbe 0x520ce3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + ebx*4 - 4]
dec ebx
test dword [edx + 0x3c], 0xfff00000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
je 0x520cdb
mov eax, dword [edx + 8]
mov esi, ebx
test eax, eax
jbe 0x520c32
mov ecx, dword [edx + 0xc]
mov edi, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
cmp eax, 0xffffffff
je 0x520c2a
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520c2a
cmp eax, esi
jbe 0x520c2a
mov esi, eax
add ecx, 4
sub edi, 1
jne 0x520c12
mov eax, dword [edx]
test eax, eax
jbe 0x520c9a
mov edx, dword [edx + 4]
mov edi, eax
lea ecx, [ecx]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x68]
cmp eax, 0xffffffff
je 0x520c50
cmp esi, eax
jae 0x520c50
mov esi, eax
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x520c66
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520c66
cmp eax, esi
jbe 0x520c66
mov esi, eax
mov eax, dword [ecx + 0x24]
cmp eax, 0xffffffff
je 0x520c7c
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520c7c
cmp eax, esi
jbe 0x520c7c
mov esi, eax
mov eax, dword [ecx + 0x30]
cmp eax, 0xffffffff
je 0x520c92
mov eax, dword [eax + 0x68]
cmp eax, 0xffffffff
je 0x520c92
cmp eax, esi
jbe 0x520c92
mov esi, eax
add edx, 4
sub edi, 1
jne 0x520c40
cmp esi, ebx
je 0x520cdb
mov ecx, dword [ebp + 8]
cmp esi, dword [ecx + 0x10]
jae 0x5204f3
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + esi*4]
mov edi, dword [ebp + 8]
push 0
push eax
lea ecx, [ebp - 0x10]
push ecx
push 1
call fcn.00508f00
test eax, eax
jl 0x520d92
push edi
call fcn.004fd350
test eax, eax
jl 0x520d92
mov byte [ebp - 1], 0
test ebx, ebx
ja 0x520be6
cmp byte [ebp - 1], 0
je 0x520a24
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
test eax, eax
jbe 0x520d00
mov ecx, edx
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
jmp 0x520d02
xor edi, edi
xor ebx, ebx
test eax, eax
jbe 0x520d90
lea esp, [esp]
mov eax, dword [edi + 0x3c]
call fcn.00509f80
test al, al
je 0x520d75
mov eax, edi
call fcn.005027f0
mov byte [ebp - 1], al
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
xor al, al
cmp dword [ecx + 0x30], 0xffffffff
je 0x520d51
mov edx, dword [ecx + 0x30]
mov ecx, dword [edx + 8]
and ecx, 0x20000000
xor esi, esi
or ecx, esi
je 0x520d4f
cmp dword [edx + 0x30], 0xffffffff
mov ecx, edx
jne 0x520d33
jmp 0x520d51
mov al, 1
cmp byte [ebp - 1], 0
je 0x520d75
test al, al
je 0x520d75
mov edi, dword [edi + 0x38]
mov esi, dword [ebp + 8]
push 0x445490
mov ecx, 0xfae
mov edx, edi
call fcn.004f47c0
add esp, 4
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
inc ebx
cmp ebx, eax
jb 0x520d86
xor edi, edi
mov ebx, eax
jmp 0x520d8c
mov ecx, dword [ecx + 0x14]
mov edi, dword [ecx + ebx*4]
cmp ebx, eax
jb 0x520d10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4