Function at 0x423dc0
Capabilities:
Terminate process

Disassembly:
sub esp, 0xd34
mov edx, dword [esp + 0xd3c]
mov eax, dword [edx + 0x510]
push ebx
mov ebx, dword [edx + 0x504]
push ebp
push esi
mov esi, dword [edx + 0x508]
xor ebp, ebp
cmp ebx, ebp
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebp
jle 0x423e09
mov ecx, ebx
mov eax, 0xffffff38
lea edi, [esp + 0x134]
rep stosd dword es:[edi], eax
test ebx, ebx
jle 0x423e4b
mov eax, 0xffffff38
mov ecx, ebx
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
xor eax, eax
test ebx, ebx
mov ecx, ebx
lea edi, [esp + 0x33c]
rep stosd dword es:[edi], eax
jle 0x423e4b
mov eax, 1
mov ecx, ebx
lea edi, [esp + 0x238]
rep stosd dword es:[edi], eax
or eax, 0xffffffff
mov ecx, ebx
lea edi, [esp + 0x440]
rep stosd dword es:[edi], eax
test ebx, ebx
jne 0x423e77
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xd50]
push ecx
push esi
push edx
mov edx, dword [esp + 0xd60]
mov ecx, esi
lea esi, [esp + 0x550]
xor eax, eax
call fcn.00423800
add esp, 0xc
jmp 0x423ed4
lea eax, [ebx - 1]
xor edi, edi
test eax, eax
jle 0x424206
lea esi, [esp + 0x544]
jmp 0x423e97
mov edx, dword [esp + 0xd4c]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
push eax
mov eax, dword [esp + 0xd54]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [edx + edi*4]
mov edx, dword [esp + 0xd60]
call fcn.00423800
add dword [esp + 0x1c], eax
add edi, 1
lea eax, [ebx - 1]
add esp, 0xc
add esi, 0x20
cmp edi, eax
jl 0x423e90
mov eax, dword [esp + 0x10]
test eax, eax
je 0x424206
mov eax, 0xffffff38
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edx
lea eax, [ebx - 1]
push eax
lea ecx, [esp + 0x550]
push ecx
call fcn.00423980
mov eax, dword [esp + 0x24]
mov dword [esp + 0x144], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
add esp, 0x10
cmp ebx, 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x10], 2
jle 0x42411f
mov edx, dword [esp + 0xd4c]
add edx, 0x210
mov dword [esp + 0x14], edx
jmp 0x423f50
mov eax, dword [esp + 0x14]
mov ebp, dword [eax]
mov ebx, dword [esp + ebp*4 + 0x33c]
mov esi, dword [esp + ebp*4 + 0x238]
cmp dword [esp + ebx*4 + 0x440], esi
je 0x424101
mov ecx, dword [esp + 0xd4c]
mov edi, dword [ecx + ebx*4 + 0x208]
mov ecx, ebx
lea edx, [esp + 0x30]
lea eax, [esp + 0x134]
mov dword [esp + ebx*4 + 0x440], esi
call fcn.00423da0
mov dword [esp + 0x1c], eax
mov ecx, esi
lea eax, [esp + 0x134]
call fcn.00423da0
cmp dword [esp + 0x1c], 0xffffffff
je 0x4241e4
cmp eax, 0xffffffff
je 0x4241e4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xd50]
push ecx
push edx
mov edx, dword [esp + 0xd5c]
push edx
mov edx, dword [esp + 0x28]
push edx
mov edx, dword [ecx + esi*4 + 0x344]
mov ecx, dword [ecx + ebx*4 + 0x344]
push edx
push ecx
mov ecx, eax
call fcn.00423b60
add esp, 0x18
test eax, eax
je 0x4240ed
mov eax, 0xffffff38
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
mov ecx, ebp
sub ecx, edi
push eax
shl edi, 5
push ecx
lea edx, [esp + edi + 0x550]
push edx
call fcn.00423980
mov edx, dword [esp + 0xd5c]
lea eax, [esp + 0x34]
push eax
mov eax, dword [edx + esi*4 + 0x208]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
sub eax, ebp
shl ecx, 5
push eax
lea edx, [esp + ecx + 0x560]
push edx
call fcn.00423980
mov eax, dword [esp + 0x3c]
add esp, 0x20
test ebx, ebx
mov dword [esp + ebx*4 + 0x30], eax
jne 0x424071
mov dword [esp + 0x134], eax
cmp esi, 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x134], eax
mov dword [esp + ecx*4 + 0x30], edi
mov dword [esp + esi*4 + 0x134], edx
jne 0x42409c
mov dword [esp + 0x34], edx
test eax, eax
jge 0x4240a8
test edi, edi
jl 0x424101
mov ecx, dword [esp + 0x10]
lea eax, [ebp - 1]
test eax, eax
jl 0x4240c5
nop
cmp dword [esp + eax*4 + 0x238], esi
jne 0x4240c5
sub eax, 1
mov dword [esp + eax*4 + 0x23c], ecx
jns 0x4240b0
mov ecx, dword [esp + 0x20]
lea eax, [ebp + 1]
cmp eax, ecx
jge 0x424101
cmp dword [esp + eax*4 + 0x33c], ebx
jne 0x424101
mov edx, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x33c], edx
add eax, 1
cmp eax, ecx
jl 0x4240d0
jmp 0x424101
mov eax, dword [esp + 0x10]
mov ecx, 0xffffff38
mov dword [esp + eax*4 + 0x134], ecx
mov dword [esp + eax*4 + 0x30], ecx
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], 4
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jl 0x423f50
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xd48]
lea eax, [ebx*4]
push eax
push ecx
call fcn.00415710
mov ebp, eax
add esp, 8
xor ecx, ecx
lea edx, [esp + 0x30]
lea eax, [esp + 0x134]
call fcn.00423da0
mov dword [ebp], eax
mov ecx, 1
lea eax, [esp + 0x134]
call fcn.00423da0
mov esi, 2
cmp ebx, esi
mov dword [ebp + 4], eax
jle 0x424206
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd4c]
add edx, 0x34c
mov dword [esp + 0x14], edx
add ebx, 0x30c
lea ebx, [ebx]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + eax*4 + 0x344]
mov edx, dword [ebx + 0xfc]
mov ecx, dword [ecx + edx*4 + 0x344]
mov eax, dword [ebp + eax*4]
mov edx, dword [ebp + edx*4]
push edi
push ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
call fcn.00423580
mov edi, eax
add esp, 8
mov ecx, esi
lea edx, [esp + 0x30]
lea eax, [esp + 0x134]
call fcn.00423da0
test eax, eax
jl 0x4241eb
cmp edi, eax
je 0x4241eb
mov dword [ebp + esi*4], eax
jmp 0x4241f5
push 1
call fcn.004df419
or edi, 0x8000
mov dword [ebp + esi*4], edi
add dword [esp + 0x14], 4
add esi, 1
add ebx, 4
cmp esi, dword [esp + 0x20]
jl 0x424190
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0xd34
ret