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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57b58d
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
xor edi, edi
cmp dword [ebp + 0xc], edi
jne 0x53739e
mov ebx, dword [ebp + 8]
xor ecx, ecx
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536c9e
lea ecx, [edi + 1]
mov eax, dword [0x5dd530]
cmp eax, edi
jne 0x536cce
xor esi, esi
mov dword [esp + 0x10], esi
cmp esi, dword [ebx + 0x7c]
je 0x536ced
mov byte [ebx + 0x4b], 1
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ecx*4 + 0x5dd9a0]
push 0x1000ffff
push ecx
call eax
mov esi, eax
mov dword [esp + 0x10], esi
cmp esi, edi
jge 0x536cad
push ebx
jmp 0x53736d
lea eax, [esi - 1]
mov dword [ebx + 0x3c], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], edi
cmp esi, edi
jle 0x5372aa
jmp 0x536d10
xor esi, esi
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536d20
lea eax, [esi + 1]
mov edx, dword [0x5dd530]
mov edi, dword [esp + 0x14]
cmp edx, esi
jne 0x536d34
mov dword [esp + 0x40], esi
jmp 0x536d4f
mov eax, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f0f0001]
push ecx
push eax
call edx
mov edx, dword [0x5dd530]
mov dword [esp + 0x40], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536d5f
mov eax, 1
cmp edx, esi
jne 0x536d69
mov dword [esp + 0x30], esi
jmp 0x536d84
mov eax, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f1f0001]
push ecx
push eax
call edx
mov edx, dword [0x5dd530]
mov dword [esp + 0x30], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536d94
mov eax, 1
cmp edx, esi
jne 0x536d9e
mov dword [esp + 0x2c], esi
jmp 0x536db9
mov eax, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f3f0001]
push ecx
push eax
call edx
mov edx, dword [0x5dd530]
mov dword [esp + 0x2c], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536dc9
mov eax, 1
cmp edx, esi
jne 0x536dd3
mov dword [esp + 0x3c], esi
jmp 0x536dee
mov eax, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f4f0001]
push ecx
push eax
call edx
mov edx, dword [0x5dd530]
mov dword [esp + 0x3c], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536dfe
mov eax, 1
cmp edx, esi
jne 0x536e08
mov dword [esp + 0x38], esi
jmp 0x536e23
mov eax, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f5f0001]
push ecx
push eax
call edx
mov edx, dword [0x5dd530]
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536e33
mov eax, 1
cmp edx, esi
jne 0x536e3f
xor edi, edi
mov dword [esp + 0x50], edi
jmp 0x536e56
mov ecx, dword [eax*4 + 0x5dd9a0]
add edi, 0x1f6f0001
push edi
push ecx
call edx
mov edi, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0xc0], esi
push edi
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov esi, dword [esp + 0x1c]
test edi, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], 0
jle 0x536fc6
mov edx, dword [esp + 0x14]
add edx, 0x100f0001
mov dword [esp + 0x44], edx
lea esp, [esp]
mov edx, dword [0x5dd530]
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x536eb6
mov eax, 1
test edx, edx
jne 0x536ebe
xor ebx, ebx
jmp 0x536ecf
mov ecx, dword [esp + 0x44]
mov eax, dword [eax*4 + 0x5dd9a0]
push ecx
push eax
call edx
mov ebx, eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], ebx
cmp ecx, esi
jae 0x536f4c
mov eax, ecx
cmp edx, eax
ja 0x536f4c
mov ebx, ecx
mov ecx, edx
sub ebx, ecx
sar ebx, 2
cmp esi, edi
jne 0x536f3d
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
mov ecx, edi
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x536f3d
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x536f23
xor ecx, ecx
jmp 0x536f25
add ecx, edx
cmp ecx, eax
jae 0x536f2b
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x536fa1
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + ebx*4]
mov dword [esi], edx
jmp 0x536fa1
cmp esi, edi
jne 0x536f9b
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
mov ecx, edi
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x536f9b
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x536f81
xor ecx, ecx
jmp 0x536f83
add ecx, edx
cmp ecx, eax
jae 0x536f89
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x536fa1
mov dword [esi], ebx
mov eax, dword [esp + 0x4c]
add dword [esp + 0x44], 0x100000
mov ebx, dword [ebp + 8]
inc eax
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x50]
jl 0x536ea0
mov eax, dword [esp + 0x40]
sub eax, 0xe0b
je 0x53703d
sub eax, 0x33
jne 0x537045
lea eax, [esp + 0x34]
cmp eax, esi
jae 0x537019
mov ecx, eax
cmp dword [esp + 0x18], ecx
ja 0x537019
mov ebx, eax
sub ebx, dword [esp + 0x18]
sar ebx, 2
cmp esi, edi
jne 0x537000
lea eax, [esp + 0x18]
call fcn.00403af0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x53700d
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ebx*4]
mov dword [esi], eax
mov ebx, dword [ebp + 8]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x537045
cmp esi, edi
jne 0x53702a
lea eax, [esp + 0x18]
call fcn.00403af0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x537034
mov ecx, dword [esp + 0x34]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x537045
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov edi, dword [esp + 0x14]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x537394
lea esi, [edi + edi*2]
shl esi, 5
mov edx, dword [esi + ecx + 4]
cmp edx, dword [esp + 0x40]
je 0x5370aa
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, ecx
je 0x537099
push eax
call fcn.0040c6ec
add esp, 4
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
jmp 0x537293
xor eax, eax
cmp dword [esi + ecx + 0x10], 0xfa0
mov dword [esp + 0x28], 1
sete al
cmp eax, dword [esp + 0x3c]
je 0x5370d2
mov eax, dword [esp + 0x10]
dec eax
cmp dword [ebx + 0x3c], eax
jne 0x5370d2
mov dword [ebx + 0x3c], edi
cmp dword [esp + 0x30], 0xd70
jne 0x537114
or dword [esi + ecx + 0x2c], 4
lea eax, [esi + ecx + 0x2c]
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, dword [esp + 0x14]
jbe 0x537394
add ebx, esi
call fcn.0053ab50
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x537394
cmp dword [esp + 0x38], 0
jl 0x5371a7
mov edx, dword [esi + ecx + 0x14]
lea ebx, [esi + ecx + 0x14]
cmp edx, 0xfd8
je 0x5371a7
mov eax, dword [esi + ecx]
cmp eax, 0xd61
je 0x53715e
cmp eax, 0xd60
jne 0x537171
mov eax, dword [esi + ecx + 0x1c]
sub eax, dword [esi + ecx + 0x18]
mov edi, dword [esp + 0x38]
sar eax, 2
cmp eax, edi
jg 0x537189
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 8]
cmp edx, eax
je 0x537185
or dword [esi + ecx + 0x2c], 8
lea ecx, [esi + ecx + 0x2c]
mov dword [ebx], eax
jmp 0x5371aa
mov eax, dword [esi + ecx + 0x18]
lea eax, [eax + edi*4]
cmp eax, dword [esi + ecx + 0x1c]
je 0x5371a7
cmp edx, dword [eax]
je 0x5371a3
or dword [esi + ecx + 0x2c], 8
lea ecx, [esi + ecx + 0x2c]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edi, dword [ebp + 8]
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x537394
mov eax, dword [esp + 0x3c]
cmp dword [esi + ebx + 0x10], eax
je 0x5371e3
or dword [esi + ebx + 0x2c], 1
mov dword [esi + ebx + 0x10], eax
lea ebx, [esi + ebx + 0x2c]
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, dword [esp + 0x14]
jbe 0x537394
mov eax, dword [esp + 0x2c]
cmp dword [esi + ebx + 0xc], eax
je 0x53721c
or dword [esi + ebx + 0x2c], 2
mov dword [esi + ebx + 0xc], eax
lea ebx, [esi + ebx + 0x2c]
mov eax, dword [esp + 0x30]
cmp eax, 0xd60
je 0x537235
cmp eax, 0xd61
je 0x537235
cmp eax, 0xd57
jne 0x537264
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jbe 0x537394
lea ecx, [esp + 0x18]
add esi, ebx
push ecx
push esi
call fcn.0053a150
xor esi, esi
mov dword [esp + 0xc0], 0xffffffff
cmp dword [esp + 0x18], esi
je 0x537284
mov edx, dword [esp + 0x18]
push edx
call fcn.0040c6ec
add esp, 4
mov ebx, dword [ebp + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x10]
jl 0x536d10
mov esi, dword [esp + 0x10]
mov ecx, dword [ebx + 4]
sub ecx, dword [ebx]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x53731d
mov edi, dword [esp + 0x10]
lea edi, [edi + edi*2]
shl edi, 5
mov edi, edi
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, esi
jbe 0x537394
or dword [edi + ebx + 0x2c], 0xd
lea eax, [edi + ebx + 0x2c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
add edi, 0x60
cmp esi, eax
jl 0x5372d0
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, eax
xor edx, edx
cmp ecx, ebx
je 0x53733a
mov esi, ebx
nop
or edx, dword [ecx + 0x2c]
add ecx, 0x60
cmp ecx, esi
jne 0x537330
test dl, 1
je 0x53735b
cmp eax, ebx
je 0x53735b
mov ecx, 1
jmp 0x537350
or dword [eax + 0x2c], ecx
add eax, 0x60
cmp eax, dword [edi + 4]
jne 0x537350
cmp dword [esp + 0x28], 0
je 0x537372
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.00535200
push esi
call fcn.00536a80
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.vector_T__too_long
call fcn.0051b7f8
push str.invalid_vector_T__subscript
call fcn.0051b845
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
push ecx
lea ecx, [esp + 0x30]
push ecx
push edi
mov byte [edi + 0x4b], 0
call fcn.0040b2e0
push 0x100
mov ecx, edi
call fcn.0040b110
xor ebx, ebx
xor ecx, ecx
cmp dword [edi + 0x78], 0x9fbf1
jne 0x5373d3
lea ecx, [ebx + 1]
mov esi, dword [0x5dd530]
cmp esi, ebx
jne 0x5373e1
xor eax, eax
jmp 0x5373f6
mov edx, dword [ecx*4 + 0x5dd9a0]
push 0x1000ffff
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [edi + 0x7c], eax
mov dword [edi + 0x3c], ebx
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x53742d
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
push ecx
lea ecx, [esp + 0x30]
push ecx
push edi
call fcn.0040b2e0
mov esi, dword [0x5dd530]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
cmp dword [edi + 0x7c], ebx
jle 0x537af2
mov ebx, edi
jmp 0x537456
mov esi, dword [0x5dd530]
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x537466
mov eax, 1
mov edi, dword [esp + 0x14]
test esi, esi
jne 0x537474
mov dword [esp + 0x40], esi
jmp 0x53748f
mov eax, dword [eax*4 + 0x5dd9a0]
lea edx, [edi + 0x1f0f0001]
push edx
push eax
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x40], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x53749f
mov eax, 1
test esi, esi
jne 0x5374a9
mov dword [esp + 0x4c], esi
jmp 0x5374c4
mov edx, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f1f0001]
push ecx
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x4c], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x5374d4
mov eax, 1
test esi, esi
jne 0x5374de
mov dword [esp + 0x48], esi
jmp 0x5374f9
mov edx, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f2f0001]
push ecx
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x48], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x537509
mov eax, 1
test esi, esi
jne 0x537513
mov dword [esp + 0x34], esi
jmp 0x53752e
mov edx, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f3f0001]
push ecx
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x34], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x53753e
mov eax, 1
test esi, esi
jne 0x537548
mov dword [esp + 0x38], esi
jmp 0x537563
mov edx, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f4f0001]
push ecx
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x537573
mov eax, 1
test esi, esi
jne 0x53757d
mov dword [esp + 0x44], esi
jmp 0x537598
mov edx, dword [eax*4 + 0x5dd9a0]
lea ecx, [edi + 0x1f5f0001]
push ecx
push edx
call esi
mov esi, dword [0x5dd530]
mov dword [esp + 0x44], eax
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x5375a8
mov eax, 1
test esi, esi
jne 0x5375b4
xor edi, edi
mov dword [esp + 0x50], edi
jmp 0x5375cb
mov eax, dword [eax*4 + 0x5dd9a0]
add edi, 0x1f6f0001
push edi
push eax
call esi
mov edi, eax
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
push edi
lea esi, [esp + 0x1c]
mov dword [esp + 0xc4], 1
call fcn.00403cd0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
test edi, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], 0
jle 0x53774e
mov ecx, dword [esp + 0x14]
add ecx, 0x100f0001
mov dword [esp + 0x3c], ecx
jmp 0x537620
xor eax, eax
cmp dword [ebx + 0x78], 0x9fbf1
jne 0x537630
mov eax, 1
mov ecx, dword [0x5dd530]
test ecx, ecx
jne 0x53763e
xor ebx, ebx
jmp 0x537653
mov edx, dword [esp + 0x3c]
mov eax, dword [eax*4 + 0x5dd9a0]
push edx
push eax
call ecx
mov edx, dword [esp + 0x18]
mov ebx, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], ebx
cmp ecx, esi
jae 0x5376d0
mov eax, ecx
cmp edx, eax
ja 0x5376d0
mov ebx, ecx
mov ecx, dword [esp + 0x18]
sub ebx, ecx
sar ebx, 2
cmp esi, edi
jne 0x5376c1
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
mov ecx, edi
sub ecx, dword [esp + 0x18]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x5376c1
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x5376a7
xor ecx, ecx
jmp 0x5376a9
add ecx, edx
cmp ecx, eax
jae 0x5376af
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x537725
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + ebx*4]
mov dword [esi], edx
jmp 0x537725
cmp esi, edi
jne 0x53771f
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
mov ecx, edi
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x53771f
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x537705
xor ecx, ecx
jmp 0x537707
add ecx, edx
cmp ecx, eax
jae 0x53770d
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x537725
mov dword [esi], ebx
mov eax, dword [esp + 0x2c]
add dword [esp + 0x3c], 0x100000
mov edx, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
inc eax
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x50]
jl 0x537620
mov eax, dword [esp + 0x40]
sub eax, 0xe0b
je 0x537840
sub eax, 0x33
jne 0x537848
lea eax, [esp + 0x10]
cmp eax, esi
jae 0x5377e2
mov ecx, eax
cmp edx, ecx
ja 0x5377e2
sub eax, edx
sar eax, 2
mov dword [esp + 0x2c], eax
cmp esi, edi
jne 0x5377d0
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
sub edi, edx
mov ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x5377cc
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x5377b2
xor ecx, ecx
jmp 0x5377b4
add ecx, edx
cmp ecx, eax
jae 0x5377ba
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
test esi, esi
je 0x5377d9
mov edx, dword [edx + eax*4]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x537848
cmp esi, edi
jne 0x53782d
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
sub edi, edx
mov ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x53782d
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x537817
xor ecx, ecx
jmp 0x537819
add ecx, edx
cmp ecx, eax
jae 0x53781f
mov ecx, eax
push ecx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x537837
mov eax, dword [esp + 0x10]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x537848
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov esi, dword [ebx + 0x78]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x6c]
mov dword [esp + 0x5c], ecx
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x64], 0xfb4
mov dword [esp + 0x68], 0xfa0
mov dword [esp + 0x6c], edx
call fcn.0040be10
mov byte [esp + 0xc0], 2
xor edi, edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
call fcn.0040c84f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x537b87
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x98], eax
xor eax, eax
xor ecx, ecx
xor edx, edx
or esi, 0xffffffff
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], esi
mov eax, dword [esp + 0x38]
mov byte [esp + 0xc0], 3
cmp dword [esp + 0x64], eax
je 0x53792b
or dword [esp + 0x80], 1
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x60], eax
je 0x537941
or dword [esp + 0x80], 2
mov dword [esp + 0x60], eax
mov ecx, dword [ebx + 4]
mov esi, dword [ebx]
mov edi, dword [esp + 0x14]
mov edx, ecx
sub edx, esi
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jle 0x5379c6
jbe 0x537394
lea eax, [edi + edi*2]
shl eax, 5
mov edx, dword [eax + esi + 4]
cmp edx, dword [esp + 0x58]
je 0x537985
mov edx, dword [ebx + 0x7c]
dec edx
cmp dword [ebx + 0x3c], edx
jne 0x537985
mov dword [ebx + 0x3c], edi
mov edx, dword [esp + 0x58]
cmp dword [eax + esi + 4], edx
je 0x5379c6
add eax, esi
cmp eax, ecx
je 0x5379c6
mov edx, dword [esp + 0x28]
push edx
push ecx
call fcn.0040b600
mov edi, eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 4]
add esp, 8
mov esi, edi
cmp edi, ebx
je 0x5379be
push esi
call fcn.00539950
add esi, 0x60
cmp esi, ebx
jne 0x5379b1
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], edi
mov ebx, ecx
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
mov ecx, edi
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x14]
jg 0x537a81
lea edx, [esp + 0x54]
cmp edx, edi
jae 0x537a4a
mov eax, edx
cmp esi, eax
ja 0x537a4a
mov ecx, edx
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp edi, dword [ebx + 8]
jne 0x537a19
mov ecx, ebx
call fcn.0040b420
mov eax, dword [ebx + 4]
lea esi, [esi + esi*2]
shl esi, 5
add esi, dword [ebx]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0xc0], 4
test eax, eax
je 0x537a40
push eax
mov edi, esi
call fcn.00539b00
add dword [ebx + 4], 0x60
mov edi, dword [esp + 0x14]
jmp 0x537aa5
cmp edi, dword [ebx + 8]
jne 0x537a56
mov ecx, ebx
call fcn.0040b420
mov eax, dword [ebx + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0xc0], 5
test eax, eax
je 0x537a77
push eax
lea edi, [esp + 0x58]
call fcn.00539b00
add dword [ebx + 4], 0x60
mov edi, dword [esp + 0x14]
jmp 0x537aa5
mov edi, dword [esp + 0x14]
cmp eax, edi
jbe 0x537394
mov ecx, dword [esp + 0x68]
lea eax, [edi + edi*2]
shl eax, 5
add eax, esi
cmp dword [eax + 0x14], ecx
je 0x537aa5
or dword [eax + 0x2c], 8
mov dword [eax + 0x14], ecx
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0xc4], 1
call fcn.00539950
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x18]
xor esi, esi
cmp eax, esi
je 0x537ad5
push eax
call fcn.0040c6ec
add esp, 4
inc edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], edi
cmp edi, dword [ebx + 0x7c]
jl 0x537450
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], eax
cmp eax, dword [edi + 0x14]
je 0x537c98
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x10]
cmp eax, ecx
jae 0x537be5
mov ebx, dword [edi]
cmp ebx, eax
ja 0x537be5
mov edx, eax
sub edx, ebx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp + 8]
mov esi, dword [edx + 8]
cmp ecx, esi
jne 0x537ba6
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x2aaaaa9
ja 0x53738a
sub esi, ebx
mov eax, 0x2aaaaaab
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x537ba6
mov edx, eax
shr edx, 1
mov esi, 0x2aaaaaa
sub esi, edx
cmp esi, eax
jae 0x537b91
xor eax, eax
jmp 0x537b93
push 0x80004005
call fcn.004010a0
add eax, edx
cmp eax, ecx
jae 0x537b99
mov eax, ecx
mov esi, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.0040b110
jmp 0x537ba9
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
lea edi, [edi + edi*2]
shl edi, 5
add edi, dword [esi]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc0], 6
test eax, eax
je 0x537bd1
push eax
call fcn.00539b00
mov dword [esp + 0xc0], 0xffffffff
add dword [esi + 4], 0x60
jmp 0x537c81
mov esi, dword [edi + 8]
cmp ecx, esi
jne 0x537c48
mov ebx, dword [edi]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x2aaaaa9
ja 0x53738a
sub esi, ebx
mov eax, 0x2aaaaaab
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x537c48
mov edx, eax
shr edx, 1
mov esi, 0x2aaaaaa
sub esi, edx
cmp esi, eax
jae 0x537c38
xor eax, eax
jmp 0x537c3a
add eax, edx
cmp eax, ecx
jae 0x537c40
mov eax, ecx
push eax
mov ecx, edi
call fcn.0040b110
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc0], 7
test eax, eax
je 0x537c6f
mov edi, dword [esp + 0x10]
push eax
call fcn.00539b00
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov dword [esp + 0xc0], 0xffffffff
add dword [edi + 4], 0x60
mov eax, dword [esp + 0x10]
add eax, 0x60
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x14]
jne 0x537b02
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x50]
mov ebx, dword [edi + 0x4c]
lea esi, [edi + 0x4c]
cmp ebx, ecx
je 0x537cc6
mov eax, ecx
sub eax, ecx
sar eax, 2
add eax, eax
add eax, eax
push eax
push ecx
push ebx
mov dword [esp + 0x34], eax
call fcn.004ffc70
add esp, 0xc
add ebx, dword [esp + 0x28]
mov dword [esi + 4], ebx
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
call fcn.00403cd0
mov eax, dword [edi]
mov dword [esp + 0x30], eax
cmp eax, dword [edi + 4]
je 0x537dd7
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
lea ecx, [esp + 0x10]
cmp ecx, eax
jae 0x537d6e
mov edx, dword [esi]
cmp edx, ecx
ja 0x537d6e
mov ebx, ecx
mov ecx, dword [esi + 8]
sub ebx, edx
sar ebx, 2
mov dword [esp + 0x28], ebx
cmp eax, ecx
jne 0x537d5e
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x537d5e
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x537d4c
xor ecx, ecx
jmp 0x537d4e
add ecx, edx
cmp ecx, eax
jae 0x537d54
mov ecx, eax
push ecx
call fcn.00403cd0
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 4]
test eax, eax
je 0x537dbf
mov edx, dword [esi]
mov ecx, dword [edx + ebx*4]
mov dword [eax], ecx
jmp 0x537dbf
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x537db2
mov edx, dword [esi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x53738a
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x537db2
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x537da4
xor ecx, ecx
jmp 0x537da6
add ecx, edx
cmp ecx, eax
jae 0x537dac
mov ecx, eax
push ecx
call fcn.00403cd0
mov eax, dword [esi + 4]
test eax, eax
je 0x537dbf
mov edx, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 0x30]
add dword [esi + 4], 4
add eax, 0x60
mov dword [esp + 0x30], eax
cmp eax, dword [edi + 4]
jne 0x537cf1
push edi
call fcn.00536680
mov esi, dword [edi]
cmp esi, dword [edi + 4]
je 0x537362
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x20]
mov ecx, esi
call fcn.0053c260
add esi, 0x60
cmp esi, dword [edi + 4]
jne 0x537de8
jmp 0x537362