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

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x34]
push ebp
xor eax, eax
cmp dword [ebx + 0x134], eax
push esi
push edi
je 0x5981fa
mov ebp, dword [ebx + 0x270]
cmp ebp, eax
je 0x5981fa
mov edi, dword [esp + 0x60]
cmp edi, eax
je 0x5981fa
cmp dword [esp + 0x64], eax
je 0x5981fa
mov esi, dword [ebx + 0x134]
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x1c], ecx
add ebp, 0x7c
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.0057b9a0
push edi
push 0x63d9ec
lea edi, [esp + 0x38]
call fcn.0057f5d0
add esp, 8
test eax, eax
je 0x5974aa
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
mov dword [eax], edx
mov esi, dword [ebx + 0x134]
call fcn.0057b9a0
mov ecx, dword [esp + 0x60]
push ecx
push 0x63d990
lea edi, [esp + 0x38]
call fcn.0057f5d0
add esp, 8
test eax, eax
je 0x5974ec
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
cdq
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, dword [esp + 0x58]
neg edx
add eax, edx
mov dword [esp + 0x58], eax
mov dword [ecx], eax
xor edi, edi
mov esi, ebp
call fcn.0057a830
mov eax, dword [eax]
mov esi, ebx
mov ebx, dword [eax]
push esi
call fcn.00592660
lea edi, [esi + 0x46c]
mov dword [esp + 0x18], eax
call fcn.00577cb0
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
add ebx, 4
mov eax, dword [ebx + 4]
test eax, eax
je 0x597544
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jge 0x597872
mov edi, ebp
mov esi, ebx
call fcn.0057b970
push eax
mov ecx, 0x6244e0
call fcn.00422360
mov edx, dword [esp + 0x44]
mov esi, dword [edx + 0x134]
add esp, 4
test al, al
je 0x597582
call fcn.0057b9a0
mov ecx, dword [esp + 0x18]
push ecx
push 0x63d990
jmp 0x597591
call fcn.0057b9a0
mov ecx, dword [esp + 0x18]
push ecx
push 0x625fcc
lea edi, [esp + 0x38]
call fcn.0057f5d0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
add eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [edx]
mov dword [esp + 0x58], eax
add eax, ecx
add esp, 8
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x60], eax
call fcn.0057b970
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
add eax, 0x1c
mov dword [eax], edx
mov edx, dword [esp + 0x60]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
add dword [ecx], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
call fcn.0057b970
add eax, 4
push eax
mov ecx, 0x6244e0
call fcn.00422360
add esp, 4
test al, al
je 0x597761
call fcn.0057b970
add eax, 4
push eax
mov ecx, 0x63d6d8
call fcn.00414f20
add esp, 4
test al, al
je 0x59765e
call fcn.0057b970
mov edi, dword [eax + 4]
add eax, 4
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0x134]
call fcn.0057b9a0
mov ecx, dword [esp + 0x64]
jmp 0x59767c
call fcn.0057b970
mov edx, dword [esp + 0x40]
mov esi, dword [edx + 0x134]
mov edi, dword [eax + 4]
add eax, 4
call fcn.0057b9a0
mov ecx, dword [esp + 0x18]
push ecx
push edi
lea edi, [esp + 0x38]
call fcn.0057f5d0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
add eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov eax, dword [edx]
mov dword [esp + 0x58], eax
add eax, ecx
add esp, 8
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x20], eax
call fcn.0057b970
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
add eax, 0x2c
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax], edx
mov edx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x30]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
cmp eax, ecx
mov dword [esp + 0x60], ecx
jg 0x5976f1
mov eax, ecx
mov ecx, edx
mov edi, ebp
mov dword [ecx], eax
call fcn.0057b970
add eax, 4
push eax
mov ecx, 0x63d6d8
call fcn.00422360
add esp, 4
test al, al
je 0x59774f
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
cmp edi, eax
jg 0x59771f
mov edi, eax
mov edx, dword [esp + 0x40]
mov esi, dword [edx + 0x134]
call fcn.0057b0a0
mov edx, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, edi
add dword [eax], ecx
mov eax, dword [esp + 0x28]
lea ecx, [eax + edx]
mov edx, dword [esp + 0x48]
mov dword [edx], ecx
mov dword [esp + 0x60], eax
jmp 0x597761
mov eax, dword [esp + 0x30]
lea ecx, [eax + 0xa]
mov eax, dword [esp + 0x48]
add dword [eax], ecx
add dword [esp + 0x60], 0xc
mov edi, ebp
mov esi, ebx
call fcn.0057b970
add eax, 0x18
push eax
mov ecx, 0x6244e0
call fcn.00422360
add esp, 4
test al, al
je 0x59784b
call fcn.0057b970
mov edx, dword [esp + 0x40]
mov esi, dword [edx + 0x134]
mov edi, dword [eax + 0x18]
add eax, 0x18
call fcn.0057b9a0
mov ecx, dword [esp + 0x2c]
push ecx
push edi
lea edi, [esp + 0x38]
call fcn.0057f5d0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
add eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov eax, dword [edx]
mov dword [esp + 0x58], eax
add eax, ecx
add esp, 8
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x28], eax
call fcn.0057b970
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
add eax, 0x3c
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x30]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
cmp eax, ecx
mov dword [esp + 0x60], ecx
jg 0x597816
mov eax, ecx
mov edi, dword [esp + 0x1c]
mov ecx, edx
mov edx, dword [esp + 0x48]
mov dword [ecx], eax
mov eax, dword [esp + 0x58]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
cmp edi, eax
jg 0x597832
mov edi, eax
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + 0x134]
call fcn.0057b0a0
add eax, edi
mov edi, dword [esp + 0x4c]
add dword [edi], eax
jmp 0x59784f
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x48]
mov esi, dword [ecx + 0x134]
mov dword [eax], edx
call fcn.0057b0a0
add dword [edi], eax
add ebp, 1
jmp 0x597527
mov esi, dword [esp + 0x44]
xor edi, edi
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esp + 0x4c], edi
lea esp, [esp]
mov eax, dword [ebx + 4]
test eax, eax
je 0x5978ad
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x5981ec
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x270]
cmp dword [eax + 0x90], 0
mov eax, dword [ebx + 4]
je 0x59799c
test eax, eax
je 0x5978ed
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x5978f2
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov ebp, edi
imul ebp, ebp, 0x4c
mov esi, dword [ecx + ebp + 0x28]
sub esi, dword [ecx + ebp + 0x20]
lea eax, [ecx + ebp + 0x1c]
mov eax, ecx
test eax, eax
mov dword [esp + 0x48], ebp
je 0x59792a
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x59792f
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov ecx, dword [edx + ebp + 0x38]
sub ecx, dword [edx + ebp + 0x30]
lea eax, [edx + ebp + 0x2c]
cmp esi, ecx
mov eax, edx
jle 0x597970
test eax, eax
je 0x597962
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597967
call fcn.005d29f1
mov edx, dword [ebx + 4]
lea eax, [edx + ebp + 0x1c]
jmp 0x5979cf
test eax, eax
je 0x59798e
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597993
call fcn.005d29f1
mov eax, dword [ebx + 4]
lea eax, [eax + ebp + 0x2c]
jmp 0x5979cf
test eax, eax
je 0x5979ba
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x5979bf
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov ebp, edi
imul ebp, ebp, 0x4c
mov dword [esp + 0x48], ebp
lea eax, [ecx + ebp + 0x2c]
mov esi, dword [eax + 0xc]
sub esi, dword [eax + 4]
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x270]
cmp dword [eax + 0x90], 0
je 0x597a64
mov eax, dword [ebx + 4]
test eax, eax
je 0x597a09
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597a0e
call fcn.005d29f1
mov ecx, dword [ebx + 4]
lea eax, [ecx + ebp + 0x1c]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 4]
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x60], ecx
je 0x597a40
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597a45
call fcn.005d29f1
mov eax, esi
sub eax, dword [esp + 0x60]
add eax, 1
cdq
sub eax, edx
mov edx, dword [ebx + 4]
sar eax, 1
push eax
push 0
lea eax, [edx + ebp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebx + 4]
test eax, eax
je 0x597a85
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597a8a
call fcn.005d29f1
mov ecx, dword [ebx + 4]
lea eax, [ecx + ebp + 0x2c]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 4]
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x60], ecx
je 0x597abc
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597ac1
call fcn.005d29f1
mov eax, esi
sub eax, dword [esp + 0x60]
add eax, 1
cdq
sub eax, edx
mov edx, dword [ebx + 4]
sar eax, 1
push eax
push 0
lea eax, [edx + ebp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebx + 4]
test eax, eax
je 0x597b01
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597b06
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x48]
mov ebp, dword [ecx + edx + 0x48]
sub ebp, dword [ecx + edx + 0x40]
lea eax, [ecx + edx + 0x3c]
mov eax, ecx
test eax, eax
je 0x597b39
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597b3e
call fcn.005d29f1
mov ecx, dword [esp + 0x48]
mov eax, esi
sub eax, ebp
add eax, 1
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebx + 4]
push 0
lea edx, [ecx + eax + 0x3c]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [esp + 0x4c], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x270]
mov eax, dword [ebx + 4]
jne 0x597df0
cmp dword [ecx + 0x90], 0
mov dword [esp + 0x4c], 1
je 0x597c44
test eax, eax
je 0x597baa
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597baf
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov ebp, dword [esp + 0x48]
mov eax, dword [ebx + 4]
add esi, ebp
test eax, eax
je 0x597bd9
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597bde
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x20]
cmp eax, dword [edx + ebp + 0x30]
mov eax, edx
jge 0x597c18
test eax, eax
je 0x597c0a
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597c0f
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + ebp + 0x20]
jmp 0x597c72
test eax, eax
je 0x597c36
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597c3b
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [edx + ebp + 0x30]
jmp 0x597c72
test eax, eax
je 0x597c62
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597c67
call fcn.005d29f1
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ecx + 0x30]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [ebp + 4], eax
mov eax, dword [edx + 0x270]
cmp dword [eax + 0x90], 0
mov eax, dword [ebx + 4]
je 0x597d55
test eax, eax
je 0x597cb1
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597cb6
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 4]
add esi, dword [esp + 0x48]
test eax, eax
je 0x597cde
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597ce3
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x48]
mov edx, dword [esi + 0x28]
cmp edx, dword [eax + ecx + 0x38]
mov eax, ecx
jle 0x597d25
test eax, eax
je 0x597d13
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597d18
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + ecx + 0x28]
jmp 0x597d83
test eax, eax
je 0x597d43
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597d48
call fcn.005d29f1
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + eax + 0x38]
jmp 0x597d83
test eax, eax
je 0x597d73
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597d78
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + edx + 0x38]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x597da7
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597dac
call fcn.005d29f1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x48]
cmp eax, dword [esi + ecx + 0x48]
jg 0x597de8
mov eax, ecx
test eax, eax
je 0x597ddc
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597de1
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [esi + edx + 0x48]
mov dword [ebp + 0xc], eax
jmp 0x5981d0
cmp dword [ecx + 0x90], 0
je 0x597eb5
test eax, eax
je 0x597e1b
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597e20
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov ebp, dword [esp + 0x48]
mov eax, dword [ebx + 4]
add esi, ebp
test eax, eax
je 0x597e4a
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597e4f
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x20]
cmp eax, dword [edx + ebp + 0x30]
mov eax, edx
jge 0x597e89
test eax, eax
je 0x597e7b
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597e80
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + ebp + 0x20]
jmp 0x597ee3
test eax, eax
je 0x597ea7
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597eac
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov ecx, dword [edx + ebp + 0x30]
jmp 0x597ee3
test eax, eax
je 0x597ed3
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597ed8
call fcn.005d29f1
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x48]
mov ecx, dword [eax + ebp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 4]
cmp eax, ecx
jl 0x597fa2
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x270]
cmp dword [ecx + 0x90], 0
mov eax, dword [ebx + 4]
je 0x597f78
test eax, eax
je 0x597f26
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597f2b
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 4]
add esi, ebp
test eax, eax
je 0x597f51
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597f56
call fcn.005d29f1
mov eax, dword [esi + 0x20]
mov edx, dword [ebx + 4]
cmp eax, dword [edx + ebp + 0x30]
mov esi, ebx
jge 0x597f6e
call fcn.0057b970
mov eax, dword [eax + 0x20]
jmp 0x597fa2
call fcn.0057b970
mov eax, dword [eax + 0x30]
jmp 0x597fa2
test eax, eax
je 0x597f96
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597f9b
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + ebp + 0x30]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x270]
cmp dword [ecx + 0x90], 0
mov eax, dword [ebx + 4]
je 0x598077
test eax, eax
je 0x597fe1
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x597fe6
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 4]
add esi, ebp
test eax, eax
je 0x59800c
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x598011
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x28]
cmp eax, dword [edx + ebp + 0x38]
mov eax, edx
jle 0x59804b
test eax, eax
je 0x59803d
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x598042
call fcn.005d29f1
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + ebp + 0x28]
jmp 0x5980a1
test eax, eax
je 0x598069
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x59806e
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov ecx, dword [edx + ebp + 0x38]
jmp 0x5980a1
test eax, eax
je 0x598095
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x59809a
call fcn.005d29f1
mov eax, dword [ebx + 4]
mov ecx, dword [eax + ebp + 0x38]
mov esi, dword [esp + 0x44]
mov eax, dword [esi + 0xc]
cmp eax, ecx
jg 0x598168
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x270]
cmp dword [edx + 0x90], 0
mov eax, dword [ebx + 4]
je 0x59813e
test eax, eax
je 0x5980e4
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x5980e9
call fcn.005d29f1
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 4]
add esi, ebp
test eax, eax
je 0x59810f
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x598114
call fcn.005d29f1
mov ecx, dword [esi + 0x28]
mov eax, dword [ebx + 4]
cmp ecx, dword [eax + ebp + 0x38]
mov esi, ebx
jle 0x598130
call fcn.0057b970
mov eax, dword [eax + 0x28]
mov esi, dword [esp + 0x44]
jmp 0x598168
call fcn.0057b970
mov eax, dword [eax + 0x38]
mov esi, dword [esp + 0x44]
jmp 0x598168
test eax, eax
je 0x59815c
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x598161
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [edx + ebp + 0x38]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x59818c
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x598191
call fcn.005d29f1
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 4]
cmp eax, dword [ecx + ebp + 0x48]
jg 0x5981c9
mov eax, ecx
test eax, eax
je 0x5981bd
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x5981c2
call fcn.005d29f1
mov edx, dword [ebx + 4]
mov eax, dword [edx + ebp + 0x48]
mov ebp, dword [esp + 0x44]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov esi, dword [esp + 0x44]
mov dword [ebp], 0
mov dword [ebp + 8], ecx
add edi, 1
jmp 0x597890
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
add dword [esi + 0xc], edx
add dword [esi + 8], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x28