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

Disassembly:
push 0xffffffffffffffff
push 0x1007ede1
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10097060]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x118]
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x100422ef
xor edi, edi
jmp 0x100422f7
mov edi, dword [ebp + 0x2c]
sub edi, eax
sar edi, 3
lea ebx, [esp + 0x18]
lea esi, [esp + 0x58]
mov dword [esp + 0x18], 0
call fcn.10044960
xor ecx, ecx
mov dword [esp + 0x110], ecx
mov eax, dword [ebp + 0x28]
cmp eax, ecx
jne 0x10042320
xor edi, edi
jmp 0x10042328
mov edi, dword [ebp + 0x2c]
sub edi, eax
sar edi, 3
lea ebx, [esp + 0x18]
lea esi, [esp + 0x70]
mov dword [esp + 0x18], ecx
call fcn.10044960
mov byte [esp + 0x110], 1
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x1004234c
xor edi, edi
jmp 0x10042354
mov edi, dword [ebp + 0x2c]
sub edi, eax
sar edi, 3
lea ebx, [esp + 0x18]
lea esi, [esp + 0x48]
mov dword [esp + 0x18], 0
call fcn.10044960
mov byte [esp + 0x110], 2
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
mov ecx, ebx
xor esi, esi
sub ecx, eax
mov edi, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042402
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x10042402
test ebx, ebx
je 0x100423a9
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x100423ae
call fcn.10067664
mov eax, dword [esp + 0x18]
mov dword [eax + edi], 0xffffffff
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x100423ce
mov eax, dword [esp + 0x78]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x100423d7
call fcn.10067664
mov ecx, dword [esp + 0x74]
mov dword [ecx + esi*4], 0xffffffff
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x100423f3
mov eax, dword [esp + 0x50]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x100423f8
call fcn.10067664
mov dword [edi], esi
add esi, 1
add edi, 4
jmp 0x10042385
test ebx, ebx
je 0x10042418
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp dword [esp + 0x120], eax
jb 0x1004241d
call fcn.10067664
mov ecx, dword [esp + 0x120]
mov dword [ebx + ecx*4], 0
jmp 0x10042430
mov edx, dword [ebp + 0x38]
mov esi, dword [edx]
mov eax, dword [ebp + 0x38]
lea edi, [ebp + 0x34]
cmp edi, edi
mov dword [esp + 0x6c], eax
je 0x10042448
call fcn.10067664
cmp esi, dword [esp + 0x6c]
je 0x100425d5
cmp esi, dword [edi + 4]
jne 0x1004245c
call fcn.10067664
test ebx, ebx
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
je 0x10042474
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp ecx, eax
jb 0x1004247d
call fcn.10067664
mov ecx, dword [esp + 0x18]
cmp dword [ebx + ecx*4], 0xffffffff
je 0x100425c4
cmp esi, dword [edi + 4]
jne 0x10042491
call fcn.10067664
test ebx, ebx
mov edi, dword [esi + 0xc]
je 0x100424a5
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x100424aa
call fcn.10067664
cmp dword [ebx + edi*4], 0xffffffff
je 0x10042517
cmp esi, dword [ebp + 0x38]
jne 0x100424ba
call fcn.10067664
test ebx, ebx
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
je 0x100424d2
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp ecx, eax
jb 0x100424d7
call fcn.10067664
cmp esi, dword [ebp + 0x38]
jne 0x100424eb
call fcn.10067664
cmp esi, dword [ebp + 0x38]
jne 0x100424eb
call fcn.10067664
test ebx, ebx
mov edi, dword [esi + 0xc]
je 0x100424ff
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x10042504
call fcn.10067664
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
add ecx, dword [ebx + edx*4]
cmp ecx, dword [ebx + edi*4]
jge 0x100425b3
cmp esi, dword [ebp + 0x38]
jne 0x1004252b
call fcn.10067664
cmp esi, dword [ebp + 0x38]
jne 0x1004252b
call fcn.10067664
mov ecx, dword [esp + 0x4c]
test ecx, ecx
mov edi, dword [esi + 0xc]
je 0x10042543
mov eax, dword [esp + 0x50]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x1004254c
call fcn.10067664
mov ecx, dword [esp + 0x4c]
mov eax, dword [esi + 8]
mov dword [ecx + edi*4], eax
cmp esi, dword [ebp + 0x38]
jne 0x1004255c
call fcn.10067664
test ebx, ebx
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
je 0x10042574
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp ecx, eax
jb 0x10042579
call fcn.10067664
cmp esi, dword [ebp + 0x38]
jne 0x1004258d
call fcn.10067664
cmp esi, dword [ebp + 0x38]
jne 0x1004258d
call fcn.10067664
test ebx, ebx
mov edi, dword [esi + 0xc]
je 0x100425a1
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x100425a6
call fcn.10067664
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
add ecx, dword [ebx + edx*4]
mov dword [ebx + edi*4], ecx
cmp esi, dword [ebp + 0x38]
jne 0x100425ce
call fcn.10067664
mov esi, dword [esi]
jmp 0x10042435
cmp esi, dword [edi + 4]
jne 0x100425ce
call fcn.10067664
mov esi, dword [esi]
jmp 0x10042435
mov edi, 1
xor esi, esi
lea esp, [esp]
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x1004261e
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x1004261e
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.100455f0
add esp, 8
test al, al
jne 0x10042619
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x74]
xor edi, edi
call fcn.10044560
add esi, 1
jmp 0x100425e0
test edi, edi
mov ebx, dword [esp + 0x5c]
je 0x10042430
or edi, 0xffffffff
mov dword [esp + 0x18], edi
xor esi, esi
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x100426ae
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x100426ae
test ecx, ecx
je 0x10042656
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x1004265b
call fcn.10067664
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi*8]
cmp ecx, dword [esp + 0x124]
jne 0x100426a9
cmp edi, 0xffffffff
je 0x100426a3
test ebx, ebx
je 0x10042680
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x10042685
call fcn.10067664
test ebx, ebx
je 0x10042696
mov eax, dword [esp + 0x60]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x1004269b
call fcn.10067664
mov edx, dword [ebx + esi*4]
cmp edx, dword [ebx + edi*4]
jge 0x100426a9
mov dword [esp + 0x18], esi
mov edi, esi
add esi, 1
jmp 0x10042633
mov ebx, dword [esp + 0x4c]
mov esi, edi
test ebx, ebx
je 0x100426c5
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x100426ca
call fcn.10067664
cmp esi, dword [ebx + esi*4]
je 0x10042841
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x100426e6
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x100426eb
call fcn.10067664
test ebx, ebx
mov eax, dword [ebp + 0x28]
lea ecx, [eax + esi*8]
mov dword [esp + 0x24], ecx
je 0x10042706
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x1004270b
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
mov edi, dword [ebx + esi*4]
je 0x10042721
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x10042726
call fcn.10067664
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 0x28]
mov ecx, dword [eax]
cmp ecx, dword [edx + edi*8]
jne 0x1004281f
test ebx, ebx
je 0x10042749
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x1004274e
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
mov edi, dword [ebx + esi*4]
je 0x10042764
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x10042769
call fcn.10067664
test ebx, ebx
mov edx, dword [ebp + 0x28]
lea eax, [edx + edi*8]
mov dword [esp + 0x24], eax
je 0x10042784
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x10042789
call fcn.10067664
test ebx, ebx
mov edi, dword [ebx + esi*4]
je 0x1004279d
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x100427a2
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
mov edi, dword [ebx + edi*4]
je 0x100427b8
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x100427bd
call fcn.10067664
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x28]
mov eax, dword [edx]
cmp eax, dword [ecx + edi*8]
jne 0x1004281f
test ebx, ebx
je 0x100427dc
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x100427e1
call fcn.10067664
test ebx, ebx
mov edi, dword [ebx + esi*4]
je 0x100427f5
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x100427fa
call fcn.10067664
test ebx, ebx
je 0x1004280b
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x10042810
call fcn.10067664
mov ecx, dword [ebx + edi*4]
mov edi, dword [esp + 0x18]
mov dword [ebx + esi*4], ecx
jmp 0x100426b4
test ebx, ebx
je 0x10042830
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp esi, eax
jb 0x10042835
call fcn.10067664
mov esi, dword [ebx + esi*4]
mov edi, dword [esp + 0x18]
jmp 0x100426b4
test ebx, ebx
mov dword [esp + 0x28], edi
je 0x10042856
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 2
cmp edi, eax
jb 0x1004285b
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
mov edx, dword [ebx + edi*4]
mov dword [esp + 0x20], edx
je 0x10042875
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004287a
call fcn.10067664
mov ebx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
lea esi, [edi*8]
add ebx, esi
test ecx, ecx
je 0x10042899
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1004289e
call fcn.10067664
mov ecx, dword [ebp + 8]
test ecx, ecx
mov eax, dword [ebp + 0x28]
mov esi, dword [esi + eax]
je 0x100428b7
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp esi, eax
jb 0x100428bc
call fcn.10067664
mov ebx, dword [ebx + 4]
shl esi, 4
add esi, dword [ebp + 8]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x100428d8
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x100428dd
call fcn.10067664
shl ebx, 4
add ebx, dword [esi + 4]
mov esi, dword [esp + 0x11c]
mov eax, dword [esi + 4]
test eax, eax
jne 0x100428f5
xor edx, edx
jmp 0x100428fd
mov edx, dword [esi + 8]
sub edx, eax
sar edx, 4
test eax, eax
je 0x10042938
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 4
cmp edx, ecx
jae 0x10042938
mov edx, dword [esp + 0x30]
mov edi, dword [esi + 8]
mov byte [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
push ecx
push edx
mov edx, ebx
mov ecx, 1
mov eax, edi
call fcn.100172a0
add esp, 8
add edi, 0x10
mov dword [esi + 8], edi
jmp 0x10042953
mov edi, dword [esi + 8]
cmp eax, edi
jbe 0x10042944
call fcn.10067664
push edi
push esi
push ebx
lea eax, [esp + 0x74]
push eax
mov eax, esi
call fcn.10015190
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042968
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1004296d
call fcn.10067664
mov edi, dword [esp + 0x28]
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
mov ebx, dword [esp + 0x20]
add edi, edi
add edi, edi
add edi, edi
add esi, edi
test ecx, ecx
mov dword [esp + 0x24], edi
je 0x10042997
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1004299c
call fcn.10067664
mov ecx, dword [ebp + 0x28]
mov edx, dword [esi]
lea eax, [ebx*8]
cmp edx, dword [eax + ecx]
mov dword [esp + 0x40], eax
jne 0x10043b36
test ecx, ecx
je 0x100429c7
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x100429cc
call fcn.10067664
mov eax, dword [ebp + 0x28]
mov ebx, dword [edi + eax]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x2c], ebx
call fcn.10005290
mov ecx, dword [ebp + 0x18]
test ecx, ecx
mov dword [esp + 0x18], eax
je 0x100429f9
mov eax, dword [ebp + 0x1c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x100429fe
call fcn.10067664
mov ecx, dword [ebp + 0x18]
test byte [ecx + ebx*4], 1
je 0x10043716
test ecx, ecx
je 0x10042a1b
mov eax, dword [ebp + 0x1c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x10042a20
call fcn.10067664
mov edx, dword [ebp + 0x18]
test byte [edx + ebx*4], 2
mov ecx, dword [ebp + 0x28]
je 0x10042e7a
test ecx, ecx
je 0x10042a42
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10042a47
call fcn.10067664
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
add esi, edi
test ecx, ecx
je 0x10042a61
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042a66
call fcn.10067664
mov eax, dword [ebp + 0x28]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x40]
cmp ecx, dword [eax + edx + 4]
jle 0x10042c20
mov ecx, eax
test ecx, ecx
je 0x10042a8e
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10042a93
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10042aad
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10042ab2
call fcn.10067664
mov eax, ebx
mov ebx, dword [ebp + 8]
shl eax, 4
mov esi, dword [ebx + eax + 4]
add ebx, eax
cmp esi, dword [ebx + 8]
mov dword [esp + 0x1c], eax
jbe 0x10042ace
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
add eax, esi
cmp eax, dword [ebx + 8]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x24], eax
ja 0x10042af2
cmp eax, dword [ebx + 4]
jae 0x10042af7
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042b0c
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042b11
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x10042b2d
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10042b32
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10042b46
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10042b5c
cmp esi, dword [ebx + 4]
jae 0x10042b61
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10042b75
call fcn.10067664
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x30]
push eax
push ecx
push esi
push ebx
push edi
mov edi, dword [esp + 0x130]
push edi
push edx
mov ecx, edi
call fcn.1002f8a0
mov esi, dword [edi + 8]
cmp dword [edi + 4], esi
jbe 0x10042ba6
call fcn.10067664
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jbe 0x10042bb3
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add ebx, eax
cmp ebx, dword [edi + 8]
ja 0x10042bc6
cmp ebx, dword [edi + 4]
jae 0x10042bcb
call fcn.10067664
cmp ebx, esi
mov eax, esi
mov ecx, ebx
jae 0x10043bc3
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
sub eax, 0x10
mov dword [esp + 0xd4], edi
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov dword [eax], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + 4], ebx
add ecx, 0x10
cmp ecx, eax
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
jb 0x10042bd7
jmp 0x10043bc3
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10042c33
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10042c38
call fcn.10067664
mov esi, dword [esp + 0x2c]
mov edi, dword [ebp + 8]
mov eax, esi
shl eax, 4
add edi, eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 8]
cmp dword [edi + 4], eax
mov dword [esp + 0x38], eax
jbe 0x10042c5b
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042c70
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042c75
call fcn.10067664
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0x28]
add ecx, ecx
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [ebp + 8]
test ecx, ecx
mov dword [esp + 0x40], eax
je 0x10042c9b
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp esi, eax
jb 0x10042ca0
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10042cb4
call fcn.10067664
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
shl eax, 4
mov dword [esp + 0xc4], esi
add esi, eax
cmp esi, dword [ebx + 8]
mov dword [esp + 0xc0], ebx
ja 0x10042cd8
cmp esi, dword [ebx + 4]
jae 0x10042cdd
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov ebx, dword [eax + 8]
cmp dword [eax + 4], ebx
jbe 0x10042cf1
call fcn.10067664
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x120]
push edi
push esi
push edx
push ebx
push ecx
push eax
call fcn.1002f8a0
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x10042d28
mov ecx, dword [ebp + 0x2c]
sub ecx, eax
sar ecx, 3
cmp dword [esp + 0x28], ecx
jb 0x10042d2d
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10042d49
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10042d4e
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10042d62
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
lea edi, [eax + esi]
cmp edi, dword [ebx + 8]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], esi
ja 0x10042d83
cmp edi, dword [ebx + 4]
jae 0x10042d88
call fcn.10067664
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10042d9d
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10042da2
call fcn.10067664
mov esi, dword [ebp + 8]
add esi, dword [esp + 0x1c]
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
mov dword [esp + 0x38], eax
jbe 0x10042dba
call fcn.10067664
mov ebx, dword [esp + 0x11c]
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
mov dword [esp + 0x24], eax
jbe 0x10042dd2
call fcn.10067664
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
push edi
push ecx
mov ecx, dword [esp + 0x38]
push edx
push esi
push eax
push ebx
push ecx
mov ecx, ebx
call fcn.1002f8a0
mov esi, dword [ebx + 8]
cmp dword [ebx + 4], esi
jbe 0x10042e00
call fcn.10067664
mov edi, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jbe 0x10042e0d
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add edi, eax
cmp edi, dword [ebx + 8]
ja 0x10042e20
cmp edi, dword [ebx + 4]
jae 0x10042e25
call fcn.10067664
cmp edi, esi
mov eax, esi
mov ecx, edi
jae 0x10043bc3
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
sub eax, 0x10
mov dword [esp + 0xf4], edi
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov dword [eax], edx
mov edx, dword [esp + 0xf4]
mov dword [eax + 4], ebx
add ecx, 0x10
cmp ecx, eax
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
jb 0x10042e31
jmp 0x10043bc3
test ecx, ecx
je 0x10042e8c
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10042e91
call fcn.10067664
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
add esi, edi
test ecx, ecx
je 0x10042eab
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042eb0
call fcn.10067664
mov eax, dword [ebp + 0x28]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x40]
cmp ecx, dword [edx + eax + 4]
mov ecx, eax
jle 0x100432ca
test ecx, ecx
je 0x10042ed8
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10042edd
call fcn.10067664
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
add esi, edi
test ecx, ecx
je 0x10042ef7
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042efc
call fcn.10067664
mov ecx, dword [esp + 0x40]
mov eax, dword [ebp + 0x28]
mov edi, dword [esi + 4]
sub edi, dword [ecx + eax + 4]
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10042f1d
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10042f22
call fcn.10067664
mov eax, dword [ebp + 8]
mov esi, ebx
shl esi, 4
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
mov dword [esp + 0x1c], esi
jne 0x10042f3c
xor eax, eax
jmp 0x10042f44
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 4
shr eax, 1
cmp edi, eax
jae 0x100430ed
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042f63
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10042f68
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10042f84
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10042f89
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, esi
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10042f9b
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
add eax, esi
cmp eax, dword [ebx + 8]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
mov dword [esp + 0x38], eax
ja 0x10042fbf
cmp eax, dword [ebx + 4]
jae 0x10042fc4
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10042fd9
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10042fde
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x10042ffa
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10042fff
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10043013
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043029
cmp esi, dword [ebx + 4]
jae 0x1004302e
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10043042
call fcn.10067664
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x30]
push edx
push eax
push esi
push ebx
push edi
mov edi, dword [esp + 0x130]
push edi
push ecx
mov ecx, edi
call fcn.1002f8a0
mov esi, dword [edi + 8]
cmp dword [edi + 4], esi
jbe 0x10043073
call fcn.10067664
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jbe 0x10043080
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add ebx, eax
cmp ebx, dword [edi + 8]
ja 0x10043093
cmp ebx, dword [edi + 4]
jae 0x10043098
call fcn.10067664
cmp ebx, esi
mov eax, esi
mov ecx, ebx
jae 0x10043bc3
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
sub eax, 0x10
mov dword [esp + 0xe4], edi
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov dword [eax], edx
mov edx, dword [esp + 0xe4]
mov dword [eax + 4], ebx
add ecx, 0x10
cmp ecx, eax
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
jb 0x100430a4
jmp 0x10043bc3
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10043100
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043105
call fcn.10067664
mov eax, dword [ebp + 8]
mov ecx, dword [eax + esi + 8]
add eax, esi
cmp dword [eax + 4], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
jbe 0x10043120
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10043135
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1004313a
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10043156
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004315b
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x1004316f
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043185
cmp esi, dword [ebx + 4]
jae 0x1004318a
call fcn.10067664
mov dword [esp + 0x34], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
ja 0x1004319b
cmp esi, dword [ebx + 4]
jae 0x100431a0
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x100431b4
call fcn.10067664
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x124]
push esi
push ebx
push edi
push ecx
push edx
call fcn.1002f8a0
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x100431e8
mov ecx, dword [ebp + 0x2c]
sub ecx, eax
sar ecx, 3
cmp dword [esp + 0x20], ecx
jb 0x100431ed
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x10043209
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004320e
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10043222
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043238
cmp esi, dword [ebx + 4]
jae 0x1004323d
call fcn.10067664
mov dword [esp + 0xa4], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x38], esi
ja 0x1004325c
cmp esi, dword [ebx + 4]
jae 0x10043261
call fcn.10067664
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10043276
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004327b
call fcn.10067664
mov esi, dword [ebp + 8]
add esi, dword [esp + 0x1c]
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x1004328f
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x100432a3
call fcn.10067664
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x124]
push ebx
push esi
push edi
push ecx
push edx
call fcn.1002f8a0
jmp 0x10043bc3
test ecx, ecx
je 0x100432dc
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x100432e1
call fcn.10067664
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
add esi, dword [esp + 0x40]
test ecx, ecx
je 0x100432fd
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10043302
call fcn.10067664
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x28]
mov edi, dword [esi + 4]
sub edi, dword [ecx + eax + 4]
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10043323
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043328
call fcn.10067664
mov eax, dword [ebp + 8]
mov esi, ebx
shl esi, 4
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
mov dword [esp + 0x1c], esi
jne 0x10043342
xor eax, eax
jmp 0x1004334a
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 4
shr eax, 1
cmp edi, eax
jae 0x1004351f
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10043369
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x1004336e
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x1004338a
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004338f
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, esi
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x100433a1
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x100433b7
cmp esi, dword [ebx + 4]
jae 0x100433bc
call fcn.10067664
mov dword [esp + 0xbc], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x38], esi
ja 0x100433db
cmp esi, dword [ebx + 4]
jae 0x100433e0
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x100433f5
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x100433fa
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10043416
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004341b
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x1004342f
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043445
cmp esi, dword [ebx + 4]
jae 0x1004344a
call fcn.10067664
mov dword [esp + 0x34], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
ja 0x1004345b
cmp esi, dword [ebx + 4]
jae 0x10043460
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10043474
call fcn.10067664
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x30]
push edx
push eax
push esi
push ebx
push edi
mov edi, dword [esp + 0x130]
push edi
push ecx
mov ecx, edi
call fcn.1002f8a0
mov esi, dword [edi + 8]
cmp dword [edi + 4], esi
jbe 0x100434a5
call fcn.10067664
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jbe 0x100434b2
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add ebx, eax
cmp ebx, dword [edi + 8]
ja 0x100434c5
cmp ebx, dword [edi + 4]
jae 0x100434ca
call fcn.10067664
cmp ebx, esi
mov eax, esi
mov ecx, ebx
jae 0x10043bc3
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
sub eax, 0x10
mov dword [esp + 0x104], edi
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov dword [eax], edx
mov edx, dword [esp + 0x104]
mov dword [eax + 4], ebx
add ecx, 0x10
cmp ecx, eax
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
jb 0x100434d6
jmp 0x10043bc3
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10043532
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043537
call fcn.10067664
mov eax, dword [ebp + 8]
mov ecx, dword [eax + esi + 8]
add eax, esi
cmp dword [eax + 4], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
jbe 0x10043552
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10043567
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x1004356c
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x10043588
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004358d
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x100435a1
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x44], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x100435b7
cmp esi, dword [ebx + 4]
jae 0x100435bc
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x100435d0
call fcn.10067664
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x124]
push esi
push ebx
push edi
push ecx
push edx
call fcn.1002f8a0
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x10043604
mov ecx, dword [ebp + 0x2c]
sub ecx, eax
sar ecx, 3
cmp dword [esp + 0x28], ecx
jb 0x10043609
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10043625
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004362a
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x1004363e
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
lea edi, [eax + esi]
cmp edi, dword [ebx + 8]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], esi
ja 0x1004365f
cmp edi, dword [ebx + 4]
jae 0x10043664
call fcn.10067664
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10043679
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x1004367e
call fcn.10067664
mov esi, dword [ebp + 8]
add esi, dword [esp + 0x1c]
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x10043692
call fcn.10067664
mov ecx, dword [esp + 0x11c]
mov eax, dword [ecx + 8]
cmp dword [ecx + 4], eax
mov dword [esp + 0x30], eax
jbe 0x100436ae
call fcn.10067664
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x30]
push edi
push ecx
push ebx
push esi
mov esi, dword [esp + 0x12c]
push eax
push esi
push edx
mov ecx, esi
call fcn.1002f8a0
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x100436db
call fcn.10067664
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x100436e8
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add ebx, eax
cmp ebx, dword [esi + 8]
ja 0x100436fb
cmp ebx, dword [esi + 4]
jae 0x10043700
call fcn.10067664
mov eax, dword [esp + 0x30]
push eax
mov eax, edi
mov ecx, ebx
call fcn.10017250
add esp, 4
jmp 0x10043bc3
test ecx, ecx
je 0x10043726
mov eax, dword [ebp + 0x1c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x1004372b
call fcn.10067664
mov ecx, dword [ebp + 0x18]
test byte [ecx + ebx*4], 2
mov ecx, dword [ebp + 0x28]
je 0x10043844
test ecx, ecx
je 0x1004374d
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10043752
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x1004376c
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043771
call fcn.10067664
mov eax, ebx
mov ebx, dword [ebp + 8]
shl eax, 4
mov esi, dword [ebx + eax + 4]
add ebx, eax
cmp esi, dword [ebx + 8]
mov dword [esp + 0x1c], eax
jbe 0x1004378d
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
add eax, esi
cmp eax, dword [ebx + 8]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], esi
mov dword [esp + 0x30], eax
ja 0x100437b1
cmp eax, dword [ebx + 4]
jae 0x100437b6
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x100437cb
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x100437d0
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x100437ec
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x100437f1
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10043805
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x3c], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x1004381b
cmp esi, dword [ebx + 4]
jae 0x10043820
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10043834
call fcn.10067664
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xb0]
jmp 0x10043992
test ecx, ecx
je 0x10043856
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x1004385b
call fcn.10067664
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
add esi, dword [esp + 0x40]
test ecx, ecx
je 0x10043877
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x1004387c
call fcn.10067664
mov eax, dword [ebp + 0x28]
mov ecx, dword [esi + 4]
cmp ecx, dword [edi + eax + 4]
mov ecx, eax
jge 0x100439f3
test ecx, ecx
je 0x100438a0
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x100438a5
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x100438bf
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x100438c4
call fcn.10067664
mov eax, ebx
mov ebx, dword [ebp + 8]
shl eax, 4
mov esi, dword [ebx + eax + 4]
add ebx, eax
cmp esi, dword [ebx + 8]
mov dword [esp + 0x1c], eax
jbe 0x100438e0
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
add eax, esi
cmp eax, dword [ebx + 8]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0x30], eax
ja 0x10043904
cmp eax, dword [ebx + 4]
jae 0x10043909
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x1004391e
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10043923
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x1004393f
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10043944
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10043958
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x3c], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x1004396e
cmp esi, dword [ebx + 4]
jae 0x10043973
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10043987
call fcn.10067664
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x30]
push edx
push eax
push esi
mov esi, dword [esp + 0x128]
push ebx
push edi
push esi
push ecx
mov ecx, esi
call fcn.1002f8a0
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x100439b8
call fcn.10067664
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x100439c5
call fcn.10067664
mov eax, dword [esp + 0x18]
shl eax, 4
add ebx, eax
cmp ebx, dword [esi + 8]
ja 0x100439d8
cmp ebx, dword [esi + 4]
jae 0x100439dd
call fcn.10067664
mov edx, dword [esp + 0x30]
push edx
mov eax, edi
mov ecx, ebx
call fcn.10017250
add esp, 4
jmp 0x10043bc3
test ecx, ecx
je 0x10043a05
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10043a0a
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x40]
test ecx, ecx
je 0x10043a24
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043a29
call fcn.10067664
mov eax, ebx
mov ebx, dword [ebp + 8]
shl eax, 4
mov esi, dword [ebx + eax + 4]
add ebx, eax
cmp esi, dword [ebx + 8]
mov dword [esp + 0x1c], eax
jbe 0x10043a45
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x34], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043a5b
cmp esi, dword [ebx + 4]
jae 0x10043a60
call fcn.10067664
mov dword [esp + 0x6c], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x30], esi
ja 0x10043a79
cmp esi, dword [ebx + 4]
jae 0x10043a7e
call fcn.10067664
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x10043a93
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x28], eax
jb 0x10043a98
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
add edi, dword [esp + 0x24]
test ecx, ecx
je 0x10043ab4
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp dword [esp + 0x2c], eax
jb 0x10043ab9
call fcn.10067664
mov ebx, dword [ebp + 8]
add ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x10043acd
call fcn.10067664
mov eax, dword [edi + 4]
shl eax, 4
mov dword [esp + 0x3c], esi
add esi, eax
cmp esi, dword [ebx + 8]
ja 0x10043ae3
cmp esi, dword [ebx + 4]
jae 0x10043ae8
call fcn.10067664
mov dword [esp + 0x3c], esi
add esi, 0x10
cmp esi, dword [ebx + 8]
ja 0x10043af9
cmp esi, dword [ebx + 4]
jae 0x10043afe
call fcn.10067664
mov eax, dword [esp + 0x11c]
mov edi, dword [eax + 8]
cmp dword [eax + 4], edi
jbe 0x10043b12
call fcn.10067664
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x124]
push esi
push ebx
push edi
push ecx
push edx
call fcn.1002f8a0
jmp 0x10043bc3
test ecx, ecx
je 0x10043b46
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x10043b4b
call fcn.10067664
mov edi, dword [ebp + 0x28]
mov esi, dword [esp + 0x40]
mov ecx, dword [ebp + 0x28]
add edi, esi
test ecx, ecx
je 0x10043b69
mov eax, dword [ebp + 0x2c]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x20], eax
jb 0x10043b6e
call fcn.10067664
mov ecx, dword [ebp + 8]
test ecx, ecx
mov eax, dword [ebp + 0x28]
mov ebx, dword [esi + eax]
je 0x10043b87
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 4
cmp ebx, eax
jb 0x10043b8c
call fcn.10067664
mov edi, dword [edi + 4]
shl ebx, 4
add ebx, dword [ebp + 8]
mov esi, ebx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10043baa
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x10043baf
call fcn.10067664
mov ebx, edi
shl ebx, 4
add ebx, dword [esi + 4]
mov esi, dword [esp + 0x11c]
call fcn.10014a60
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x4c]
test esi, esi
mov ebx, edi
mov dword [esp + 0x28], ebx
je 0x10043be2
mov eax, dword [esp + 0x50]
sub eax, esi
sar eax, 2
cmp edi, eax
jb 0x10043be7
call fcn.10067664
mov edi, dword [esi + edi*4]
cmp ebx, edi
mov dword [esp + 0x20], edi
jne 0x10042953
test esi, esi
je 0x10043c03
push esi
call fcn.10067257
add esp, 4
mov eax, dword [esp + 0x74]
test eax, eax
je 0x10043c14
push eax
call fcn.10067257
add esp, 4
mov eax, dword [esp + 0x5c]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
je 0x10043c33
push eax
call fcn.10067257
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret 0x10