Function at 0x41a030
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [0x66bb0c]
mov ebx, esi
push edi
mov edi, dword [ebx + 0x2f94]
dec edi
js 0x41a0b2
lea eax, [edi + edi*4]
shl eax, 2
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 0x2f9c]
cmp dword [ecx + eax + 4], 7
jne 0x41a0a3
mov esi, ecx
sub ecx, esi
add ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
lea edx, [esi + eax*4]
mov eax, dword [ebx + 0x2f94]
sub eax, ecx
dec eax
lea eax, [eax + eax*4]
shl eax, 2
push eax
lea eax, [edx + 0x14]
push eax
push edx
call fcn.004c0580
mov eax, dword [ebp - 4]
add esp, 0xc
dec dword [ebx + 0x2f94]
sub eax, 0x14
dec edi
mov dword [ebp - 4], eax
jns 0x41a053
mov esi, dword [0x66bb0c]
xor edi, edi
cmp dword [ebx + 0x2f94], edi
jle 0x41a0ea
xor esi, esi
mov edi, edi
mov eax, dword [ebx + 0x2f9c]
add eax, esi
cmp dword [eax + 4], 0
jne 0x41a0d8
push eax
mov eax, dword [eax + 0xc]
push ebx
call eax
add esp, 8
inc edi
add esi, 0x14
cmp edi, dword [ebx + 0x2f94]
jl 0x41a0c0
mov esi, dword [0x66bb0c]
cmp byte [esi + 0xb4], 0
je 0x41a100
test byte [esi + 0xc], 2
jne 0x41a100
mov byte [esi + 0xb4], 0
mov edi, esi
cmp byte [edi + 0x2f5d], 0
jne 0x41a163
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x41a15c
push ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
call fcn.004171d0
mov esi, eax
add esp, 8
test esi, esi
je 0x41a156
mov edx, dword [ebp - 4]
mov ecx, esi
call fcn.00426b10
mov ecx, dword [0x66bb0c]
test ecx, ecx
je 0x41a146
dec dword [ecx + 0x36c]
push dword [0x66bb08]
push esi
call dword [0x4ff1c0]
add esp, 8
mov esi, dword [0x66bb0c]
mov byte [edi + 0x2f5d], 1
movss xmm1, dword [edi + 0x2f60]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x41a1ee
subss xmm1, dword [edi + 0x18]
comiss xmm0, xmm1
movss dword [edi + 0x2f60], xmm1
jb 0x41a1ee
mov eax, dword [edi + 0x20]
mov dword [ebp - 8], eax
test eax, eax
je 0x41a1dd
lea ecx, [ebp - 4]
mov dword [esi + 0x2f60], 0
mov dword [ebp - 4], 0
call fcn.00426d30
mov ecx, dword [ebp - 8]
mov edx, 0x5070a4
mov dword [ebp - 0xc], eax
call fcn.00417070
mov esi, eax
test esi, esi
je 0x41a1d5
push esi
push dword [ebp - 4]
push 1
push dword [ebp - 0xc]
call fcn.004c2a75
push esi
call fcn.004c333e
add esp, 0x14
mov esi, dword [0x66bb0c]
jmp 0x41a1e4
mov byte [edi + 0x354], 1
mov dword [edi + 0x2f60], 0
movss xmm0, dword [ebx + 0x18]
xor eax, eax
inc dword [ebx + 0x1b48]
cvtps2pd xmm0, xmm0
mov word [ebx + 0x2f2e], ax
mov dword [ebx + 0x1b9c], eax
lea eax, [ebx + 0x2f40]
mov byte [ebx + 0x1b54], 1
addsd xmm0, qword [ebx + 0x1b40]
movsd qword [ebx + 0x1b40], xmm0
mov edi, dword [eax + 4]
test edi, edi
jns 0x41a262
je 0x41a23e
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x41a243
mov ecx, 8
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [ebx + 0x2f40]
push eax
call fcn.00427d40
mov esi, dword [0x66bb0c]
lea eax, [ebx + 0x2f40]
mov dword [eax], 0
mov ecx, 0x78
mov eax, dword [ebx + 0x31e8]
xorps xmm3, xmm3
movss xmm1, dword [ebx + 0x18]
movaps xmm0, xmm1
movss xmm4, dword [0x50c584]
subss xmm0, dword [ebx + eax*4 + 0x3008]
addss xmm0, dword [ebx + 0x31f0]
movss dword [ebx + 0x31f0], xmm0
movss dword [ebx + eax*4 + 0x3008], xmm1
mov eax, dword [ebx + 0x31e8]
inc eax
movss xmm1, dword [ebx + 0x31f0]
cdq
idiv ecx
mov eax, dword [ebx + 0x31ec]
movss xmm0, dword [0x50c710]
inc eax
cmp eax, ecx
mov dword [ebx + 0x31e8], edx
movss dword [ebp - 4], xmm0
cmovl ecx, eax
comiss xmm1, xmm3
mov dword [ebx + 0x31ec], ecx
jbe 0x41a2f6
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movaps xmm0, xmm4
divss xmm0, xmm1
movss dword [ebx + 0x358], xmm0
call fcn.00427350
mov eax, dword [ebx + 0x98]
mov byte [eax + 0x10], 1
mov edx, dword [esi + 0xa4]
test edx, edx
jne 0x41a322
mov eax, dword [esi + 0x98]
mov eax, dword [eax + 0x3c]
mov edx, dword [eax]
mov dword [esi + 0x1940], edx
movss xmm0, dword [edx + 0x10]
mulss xmm0, dword [esi + 0x9c]
mulss xmm0, dword [edx + 0x44]
comiss xmm4, xmm0
jb 0x41a342
movaps xmm0, xmm4
mov eax, dword [esi + 0x1ba8]
movss dword [esi + 0x1948], xmm0
test eax, eax
je 0x41a379
movss xmm3, dword [eax + 0x23c]
mov eax, dword [eax + 0x2d8]
mulss xmm3, xmm0
test eax, eax
je 0x41a379
movss xmm0, dword [eax + 0x23c]
mulss xmm0, xmm3
movaps xmm3, xmm0
movaps xmm0, xmmword [0x50cb20]
movss dword [esi + 0x1944], xmm3
mov ecx, dword [edx + 0x30]
movups xmmword [ebp - 0x18], xmm0
movss xmm4, dword [ebp - 0xc]
mov eax, dword [ecx + 0x2c]
movss xmm5, dword [ebp - 0x10]
movss xmm6, dword [ebp - 0x14]
movss xmm7, dword [ebp - 0x18]
mov dword [esi + 0x194c], eax
mov eax, dword [ecx + 0x30]
mov dword [esi + 0x1950], eax
lea eax, [ecx + 0x58]
mov dword [esi + 0x1b3c], eax
mov dword [esi + 0x1954], edx
movss dword [esi + 0x1958], xmm3
mov edx, dword [ebx + 0x1d48]
test edx, edx
jle 0x41a424
mov ecx, dword [ebx + 0x1d50]
lea esp, [esp]
mov eax, dword [ecx]
movss xmm3, dword [eax + 4]
comiss xmm7, xmm3
movss xmm2, dword [eax + 8]
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [eax + 0x10]
addss xmm0, xmm3
addss xmm1, xmm2
jbe 0x41a406
movaps xmm7, xmm3
comiss xmm6, xmm2
jbe 0x41a40e
movaps xmm6, xmm2
comiss xmm0, xmm5
jbe 0x41a416
movaps xmm5, xmm0
comiss xmm1, xmm4
jbe 0x41a41e
movaps xmm4, xmm1
add ecx, 4
dec edx
jne 0x41a3e0
mov eax, dword [ebx + 0x15e8]
lea ecx, [ebx + 0x194c]
movss xmm1, dword [ebx + 0x15ec]
movss dword [ebp - 0x18], xmm7
movss dword [ebp - 0x14], xmm6
movss dword [ebp - 0x10], xmm5
movss dword [ebp - 0xc], xmm4
movdqu xmm0, xmmword [ebp - 0x18]
mov dword [ebx + 0x195c], eax
movdqu xmmword [ebx + 0x1964], xmm0
call fcn.0042fda0
xor eax, eax
mov ecx, 1
cmp byte [ebx + 0x15e4], al
cmovne eax, ecx
cmp byte [ebx + 0x15e5], 0
mov dword [ebx + 0x1974], eax
je 0x41a498
mov eax, dword [ebx + 0x1940]
mov eax, dword [eax + 0x30]
test byte [eax], 4
jne 0x41a498
or dword [ebx + 0x1974], 2
cmp byte [ebx + 0x15e6], 0
je 0x41a4a8
or dword [ebx + 0x1974], 4
test byte [ebx + 0xc], 8
je 0x41a4b5
or dword [ebx + 0x1974], 8
xor edi, edi
cmp dword [ebx + 0x1d48], edi
jle 0x41a4e2
nop
mov eax, dword [ebx + 0x1d50]
push 0x2c
push 0
mov eax, dword [eax + edi*4]
add eax, 0x34
push eax
call fcn.004c6800
inc edi
add esp, 0xc
cmp edi, dword [ebx + 0x1d48]
jl 0x41a4c0
cmp byte [ebx + 0x1ec4], 0
je 0x41a516
mov eax, dword [ebx + 0x1edc]
cmp eax, dword [ebx + 0x1be0]
jne 0x41a516
cmp dword [esi + 0x1be0], eax
jne 0x41a507
mov dword [esi + 0x1be4], eax
cmp dword [esi + 0x1c1c], eax
jne 0x41a516
mov byte [esi + 0x1c20], 1
mov eax, dword [ebx + 0x1bd0]
test eax, eax
jne 0x41a528
mov dword [ebx + 0x1bd8], eax
jmp 0x41a53a
mov eax, dword [ebx + 0x1bcc]
test eax, eax
je 0x41a544
cmp dword [ebx + 0x1be0], eax
jne 0x41a544
mov dword [ebx + 0x1bdc], 0
mov eax, dword [ebx + 0x1bcc]
test eax, eax
je 0x41a580
movss xmm0, dword [ebx + 0x1bd8]
addss xmm0, dword [ebx + 0x18]
movss dword [ebx + 0x1bd8], xmm0
cmp dword [ebx + 0x1be0], eax
je 0x41a580
movss xmm0, dword [ebx + 0x1bdc]
addss xmm0, dword [ebx + 0x18]
movss dword [ebx + 0x1bdc], xmm0
mov dword [ebx + 0x1bd0], eax
mov al, byte [ebx + 0x1bd5]
mov byte [ebx + 0x1bd6], al
mov eax, dword [ebx + 0x1be0]
mov dword [ebx + 0x1bcc], 0
mov word [ebx + 0x1bd4], 0
mov byte [ebx + 0x1bd7], 0
cmp dword [ebx + 0x1be4], eax
je 0x41a5cb
cmp dword [ebx + 0x1c1c], eax
jne 0x41a5cb
test eax, eax
je 0x41a5cb
call fcn.00418b40
mov ecx, dword [ebx + 0x1be0]
test ecx, ecx
je 0x41a5ea
movss xmm0, dword [ebx + 0x1be8]
addss xmm0, dword [ebx + 0x18]
movss dword [ebx + 0x1be8], xmm0
movss xmm0, dword [ebx + 0x1c2c]
mov eax, dword [ebx + 0x1c10]
addss xmm0, dword [ebx + 0x18]
mov dword [ebx + 0x1c24], eax
mov al, byte [ebx + 0x1bf0]
mov byte [ebx + 0x1c21], al
mov eax, dword [ebx + 0x2ec0]
movss dword [ebx + 0x1c2c], xmm0
mov dword [ebx + 0x1c1c], ecx
mov dword [ebx + 0x1be4], 0
mov byte [ebx + 0x1bf1], 0
mov byte [ebx + 0x1c20], 0
mov byte [ebx + 0x1bec], 0
test eax, eax
je 0x41a654
cmp ecx, eax
je 0x41a654
mov dword [ebx + 0x2ec0], 0
test ecx, ecx
jne 0x41a670
mov dword [ebx + 0x1bf4], ecx
mov dword [ebx + 0x1bf8], ecx
mov dword [ebx + 0x1c00], ecx
mov dword [ebx + 0x1c04], ecx
cmp byte [ebx + 0x1518], 0
mov eax, dword [ebx + 0x1f28]
mov dword [ebx + 0x1f2c], eax
mov dword [ebx + 0x1f28], 0
mov dword [ebx + 0x1f24], 0x7f7fffff
mov word [ebx + 0x1ec5], 0
mov dword [ebx + 0x1f34], 0
je 0x41a6bb
lea ecx, [ebx + 8]
call fcn.00416e80
mov byte [ebx + 0x1518], 0
xor eax, eax
mov ecx, 1
cmp byte [esi + 0xfc], al
cmovne eax, ecx
cmp byte [esi + 0xfd], 0
je 0x41a6d7
or eax, 2
cmp byte [esi + 0xfe], 0
je 0x41a6e3
or eax, 4
cmp byte [esi + 0xff], 0
je 0x41a6ef
or eax, 8
movss xmm2, dword [0x50c73c]
lea edi, [ebx + 0xc74]
mov dword [ebx + 0x37c], eax
mov ecx, 0x200
lea eax, [ebx + 0x474]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp byte [ebx + ecx + 0x100], 0
je 0x41a735
movss xmm1, dword [eax]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x41a738
movss xmm0, dword [ebx + 0x18]
addss xmm0, xmm1
jmp 0x41a738
movaps xmm0, xmm2
movss dword [eax], xmm0
inc ecx
add eax, 4
cmp ecx, 0x200
jl 0x41a714
call fcn.00423f10
call fcn.00419470
call fcn.00419db0
call fcn.004191b0
mov eax, dword [0x66bb0c]
mov edx, dword [eax + 0x1d2c]
dec edx
js 0x41a795
mov eax, dword [eax + 0x1d34]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
lea esp, [esp]
mov ecx, dword [eax]
test ecx, ecx
je 0x41a78f
test dword [ecx + 8], 0x8000000
jne 0x41a7af
sub eax, 0x24
dec edx
jns 0x41a780
cmp dword [ebx + 0x1ea4], 0
je 0x41a7de
movss xmm0, dword [ebx + 0x1eb4]
comiss xmm0, dword [0x50c4ec]
jbe 0x41a7de
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x50c644]
movss xmm1, dword [0x50c584]
addss xmm0, dword [ebx + 0x1ebc]
comiss xmm1, xmm0
ja 0x41a7d4
movaps xmm0, xmm1
movss dword [ebx + 0x1ebc], xmm0
jmp 0x41a80a
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x50c664]
movss xmm1, dword [ebx + 0x1ebc]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm1, xmm0
jae 0x41a802
movaps xmm1, xmm0
movss dword [ebx + 0x1ebc], xmm1
mov dword [ebp - 0x10], 0x3f800000
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x2f4c], eax
mov dword [ebp - 0xc], 0x3f800000
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x1ec0], 0
mov dword [ebx + 0x31fc], 0xffffffff
mov dword [ebx + 0x31f8], 0xffffffff
mov dword [ebx + 0x31f4], 0xffffffff
mov dword [ebx + 0x2f50], eax
call fcn.00419920
cmp byte [ebx + 0x1b57], 0
jne 0x41a887
movss xmm1, dword [ebx + 0xb8]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x41a887
movsd xmm0, qword [ebx + 0x1b40]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
movss dword [ebp - 4], xmm0
jmp 0x41a88f
movss xmm0, dword [0x50c710]
xor esi, esi
cmp dword [ebx + 0x1b60], esi
je 0x41a8f6
lea esp, [esp]
mov eax, dword [ebx + 0x1b68]
mov ecx, dword [eax + esi*4]
mov al, byte [ecx + 0x8a]
mov byte [ecx + 0x8b], al
xor eax, eax
mov word [ecx + 0x96], ax
mov byte [ecx + 0x8a], al
mov byte [ecx + 0x8c], al
cmp byte [ecx + 0x8b], al
jne 0x41a8e8
cmp byte [ecx + 0x324], al
jne 0x41a8e8
comiss xmm0, dword [ecx + 0x21c]
jbe 0x41a8e8
call fcn.004188d0
movss xmm0, dword [ebp - 4]
inc esi
cmp esi, dword [ebx + 0x1b60]
jne 0x41a8a0
xor esi, esi
cmp dword [ebx + 0x1f98], esi
jle 0x41a949
xor edi, edi
xorps xmm1, xmm1
jmp 0x41a910
mov eax, dword [ebx + 0x1fa0]
movss xmm0, dword [eax + esi*4]
comiss xmm0, xmm1
jb 0x41a93a
movss xmm2, dword [ebp - 4]
comiss xmm2, xmm0
jbe 0x41a93a
mov ecx, dword [ebx + 0x1f80]
add ecx, edi
call fcn.00439250
xorps xmm1, xmm1
inc esi
add edi, 0x1c8
cmp esi, dword [ebx + 0x1f98]
jl 0x41a910
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebx + 0x1f6c], eax
jle 0x41a9a2
xor esi, esi
xorps xmm1, xmm1
jmp 0x41a960
mov edi, dword [ebx + 0x1f74]
movss xmm0, dword [edi + esi + 4]
comiss xmm0, xmm1
jb 0x41a993
movss xmm2, dword [ebp - 4]
comiss xmm2, xmm0
jbe 0x41a993
lea ecx, [edi + 0x10]
add ecx, esi
call fcn.00432a60
mov eax, dword [ebp - 8]
xorps xmm1, xmm1
mov dword [edi + esi + 4], 0xbf800000
inc eax
add esi, 0x68
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x1f6c]
jl 0x41a960
cmp byte [ebx + 0x1b57], 0
je 0x41a9b0
call fcn.00418830
mov eax, dword [ebx + 0x1d54]
mov byte [ebx + 0x1b57], 0
test eax, eax
je 0x41aad4
cmp byte [eax + 0x8b], 0
jne 0x41aad4
mov eax, dword [0x66bb0c]
mov edx, dword [eax + 0x1b6c]
dec edx
js 0x41aa14
mov eax, dword [eax + 0x1b74]
lea esi, [eax + edx*4]
lea esp, [esp]
mov ecx, dword [esi]
test ecx, ecx
je 0x41aa0e
cmp byte [ecx + 0x8b], 0
je 0x41aa0e
mov eax, dword [ecx + 8]
and eax, 0x40200
cmp eax, 0x40200
jne 0x41aa78
sub esi, 4
dec edx
jns 0x41a9f0
mov esi, dword [0x66bb0c]
cmp dword [esi + 0x1d54], 0
je 0x41aaa1
mov word [esi + 0x1dac], 0
cmp byte [esi + 0x1dad], 0
mov dword [esi + 0x1d54], 0
mov dword [esi + 0x1d58], 0
mov dword [esi + 0x1d5c], 0
mov byte [esi + 0x1d90], 0
mov dword [esi + 0x1d8c], 0
mov byte [esi + 0x1d95], 0
jne 0x41aa96
cmp byte [esi + 0x1d95], 0
jne 0x41aa96
xor eax, eax
jmp 0x41aa9b
mov eax, dword [ecx + 0x2f0]
test eax, eax
je 0x41aa8b
cmp byte [eax + 0x8b], 0
jne 0x41aa8d
mov eax, ecx
mov ecx, eax
call fcn.00421220
jmp 0x41aad4
mov eax, 1
mov byte [esi + 0x1d94], al
xor dl, dl
xor ecx, ecx
call fcn.004223f0
cmp dword [esi + 0x1be0], 0
je 0x41aad4
mov eax, dword [esi + 0x1c10]
test eax, eax
je 0x41aad4
cmp dword [eax + 0x2e0], 0
je 0x41aad4
cmp byte [esi + 0x1bee], 0
jne 0x41aad4
call fcn.00418b40
mov ecx, dword [ebx + 0x1b88]
test ecx, ecx
jns 0x41ab74
je 0x41aaef
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x41aaf4
mov eax, 8
xor esi, esi
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41ab74
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ab0e
inc dword [eax + 0x36c]
push dword [0x66bb08]
imul eax, esi, 0x54
push eax
call dword [0x4ff1c8]
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x1b8c]
test eax, eax
je 0x41ab68
imul ecx, dword [ebx + 0x1b84], 0x54
push ecx
push eax
push edi
call fcn.004c54b0
mov ecx, dword [ebx + 0x1b8c]
add esp, 0xc
test ecx, ecx
je 0x41ab58
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ab58
dec dword [eax + 0x36c]
push dword [0x66bb08]
push ecx
call dword [0x4ff1c0]
add esp, 8
mov dword [ebx + 0x1b8c], edi
mov dword [ebx + 0x1b88], esi
mov dword [ebx + 0x1b84], 0
mov ecx, dword [ebx + 0x1d3c]
test ecx, ecx
jns 0x41ac26
je 0x41ab99
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x41ab9e
mov eax, 8
xor esi, esi
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41ac26
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41abb8
inc dword [eax + 0x36c]
push dword [0x66bb08]
lea eax, [esi + esi*8]
shl eax, 2
push eax
call dword [0x4ff1c8]
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x1d40]
test eax, eax
je 0x41ac1a
mov ecx, dword [ebx + 0x1d38]
lea ecx, [ecx + ecx*8]
shl ecx, 2
push ecx
push eax
push edi
call fcn.004c54b0
mov ecx, dword [ebx + 0x1d40]
add esp, 0xc
test ecx, ecx
je 0x41ac0a
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ac0a
dec dword [eax + 0x36c]
push dword [0x66bb08]
push ecx
call dword [0x4ff1c0]
add esp, 8
mov dword [ebx + 0x1d40], edi
mov dword [ebx + 0x1d3c], esi
mov dword [ebx + 0x1d38], 0
mov ecx, dword [ebx + 0x1d18]
test ecx, ecx
jns 0x41acd6
je 0x41ac4b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x41ac50
mov eax, 8
xor esi, esi
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41acd6
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ac6a
inc dword [eax + 0x36c]
push dword [0x66bb08]
lea eax, [esi*4]
push eax
call dword [0x4ff1c8]
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x1d1c]
test eax, eax
je 0x41acca
mov ecx, dword [ebx + 0x1d14]
shl ecx, 2
push ecx
push eax
push edi
call fcn.004c54b0
mov ecx, dword [ebx + 0x1d1c]
add esp, 0xc
test ecx, ecx
je 0x41acba
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41acba
dec dword [eax + 0x36c]
push dword [0x66bb08]
push ecx
call dword [0x4ff1c0]
add esp, 8
mov dword [ebx + 0x1d1c], edi
mov dword [ebx + 0x1d18], esi
mov dword [ebx + 0x1d14], 0
mov esi, dword [ebx + 0x1d14]
mov ecx, dword [ebx + 0x1d18]
cmp esi, ecx
jne 0x41ad8d
inc esi
test ecx, ecx
je 0x41ad04
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x41ad09
mov eax, 8
cmp eax, esi
cmovg esi, eax
cmp esi, ecx
jle 0x41ad8d
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ad21
inc dword [eax + 0x36c]
push dword [0x66bb08]
lea eax, [esi*4]
push eax
call dword [0x4ff1c8]
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x1d1c]
test eax, eax
je 0x41ad81
mov ecx, dword [ebx + 0x1d14]
shl ecx, 2
push ecx
push eax
push edi
call fcn.004c54b0
mov ecx, dword [ebx + 0x1d1c]
add esp, 0xc
test ecx, ecx
je 0x41ad71
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ad71
dec dword [eax + 0x36c]
push dword [0x66bb08]
push ecx
call dword [0x4ff1c0]
add esp, 8
mov dword [ebx + 0x1d1c], edi
mov dword [ebx + 0x1d18], esi
mov ecx, dword [ebx + 0x1d14]
mov eax, dword [ebx + 0x1d1c]
mov dword [eax + ecx*4], 0
inc dword [ebx + 0x1d14]
mov ecx, dword [ebx + 0x1d24]
test ecx, ecx
jns 0x41ae4e
je 0x41adc1
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x41adc6
mov eax, 8
xor esi, esi
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41ae4e
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ade0
inc dword [eax + 0x36c]
push dword [0x66bb08]
lea eax, [esi + esi*2]
shl eax, 4
push eax
call dword [0x4ff1c8]
mov edi, eax
add esp, 8
mov eax, dword [ebx + 0x1d28]
test eax, eax
je 0x41ae42
mov ecx, dword [ebx + 0x1d20]
lea ecx, [ecx + ecx*2]
shl ecx, 4
push ecx
push eax
push edi
call fcn.004c54b0
mov ecx, dword [ebx + 0x1d28]
add esp, 0xc
test ecx, ecx
je 0x41ae32
mov eax, dword [0x66bb0c]
test eax, eax
je 0x41ae32
dec dword [eax + 0x36c]
push dword [0x66bb08]
push ecx
call dword [0x4ff1c0]
add esp, 8
mov dword [ebx + 0x1d28], edi
mov dword [ebx + 0x1d24], esi
mov dword [ebx + 0x1d20], 0
call fcn.00427680
call fcn.00427780
mov ecx, dword [0x66bb0c]
xor edx, edx
mov byte [ebx + 0x1b55], 1
mov dword [ebp - 0x10], 0x43c80000
mov eax, dword [ebp - 0x10]
or dword [ecx + 0x1c84], 2
mov dword [ecx + 0x1ca4], eax
mov dword [ebp - 0xc], 0x43c80000
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x1ca8], eax
mov dword [ecx + 0x1c8c], 4
mov ecx, str.DebugDefault
push 0
call fcn.0041ef10
xor edi, edi
add esp, 4
cmp dword [ebx + 0x2f94], edi
jle 0x41aee4
xor esi, esi
lea ecx, [ecx]
mov eax, dword [ebx + 0x2f9c]
add eax, esi
cmp dword [eax + 4], 1
jne 0x41aed8
push eax
mov eax, dword [eax + 0xc]
push ebx
call eax
add esp, 8
inc edi
add esi, 0x14
cmp edi, dword [ebx + 0x2f94]
jl 0x41aec0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret