Function at 0x4412e0
Capabilities:
Contain obfuscated stackstrings
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4fe2b7
push eax
mov eax, 0x1164
mov dword fs:[0], esp
call fcn.004c2240
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x5c], ebp
mov eax, dword [0x55a6f0]
mov dword [esp + 0x117c], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x10], eax
mov ecx, dword [0x55ec0c]
mov eax, 1
cmp ecx, eax
mov byte [esp + 0x117c], al
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], ebp
je 0x441361
mov ecx, dword [0x55eb70]
mov dword [esp + 0x64], ebp
cmp ecx, ebp
je 0x441365
mov dword [esp + 0x64], eax
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x55eb24
call fcn.004dc8f0
mov ecx, esi
call fcn.00444100
lea ecx, [esp + 0x1184]
lea edx, [esp + 0x70]
push ecx
push edx
call fcn.00422150
add esp, 8
mov eax, dword [esp + 0x1184]
mov ecx, dword [0x55f314]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
mov byte [esp + 0x1188], 2
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
lea ecx, [esp + 0x1184]
push ecx
call fcn.004221a0
or ebx, 0xffffffff
add esp, 4
cmp eax, ebx
mov dword [esp + 0xb8], eax
jne 0x44145d
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x4ec], ebp
jne 0x441409
mov edx, dword [0x55f0b0]
push ebp
push 0x30
push edx
call fcn.004e3f9c
push 0x55f318
lea ecx, [esp + 0x14]
call fcn.004dc9bb
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
lea ecx, [esp + 0x70]
mov byte [esp + 0x117c], 1
call fcn.004dc882
lea ecx, [esp + 0x10]
mov byte [esp + 0x117c], 0
call fcn.004dc882
mov dword [esp + 0x117c], ebx
jmp 0x444004
lea ecx, [esp + 0xe0]
call fcn.004dd373
lea ecx, [esp + 0xcc]
mov byte [esp + 0x117c], 3
call fcn.004dcef0
mov ecx, dword [0x55a6f0]
mov dword [esp + 0xdc], ecx
mov edi, vtable.CFileException.0
push ebp
lea ecx, [esp + 0xe0]
mov byte [esp + 0x1180], 5
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], ebx
call fcn.004dca0b
mov eax, dword [esp + 0x1184]
lea edx, [esp + 0xcc]
push edx
push ebp
push eax
lea ecx, [esp + 0xec]
mov byte [esp + 0x1188], 6
call fcn.004dd485
test eax, eax
jne 0x441569
push 0x55f31c
lea ecx, [esp + 0x14]
call fcn.004dc9bb
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov dword [esp + 0xcc], edi
lea ecx, [esp + 0xdc]
mov byte [esp + 0x117c], 7
call fcn.004dc882
lea ecx, [esp + 0xe0]
mov byte [esp + 0x117c], 2
call fcn.004dd3c8
lea ecx, [esp + 0x70]
mov byte [esp + 0x117c], 1
call fcn.004dc882
lea ecx, [esp + 0x10]
mov byte [esp + 0x117c], 0
call fcn.004dc882
mov dword [esp + 0x117c], ebx
jmp 0x444004
lea ecx, [esp + 0xe0]
call fcn.004dd77f
lea ecx, [esp + 0xe0]
mov dword [esp + 0x90], eax
call fcn.004dd6a0
mov eax, dword [0x55a6f0]
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 0x118]
push ebp
lea edx, [esp + 0x2c]
push ecx
push edx
mov ecx, esi
mov byte [esp + 0x1188], 8
call fcn.0043f100
mov ecx, dword [eax + 0x4e4]
call fcn.004d6473
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x1180], 9
call fcn.004dc9bb
lea ecx, [esp + 0x28]
mov byte [esp + 0x117c], 8
call fcn.004dc882
lea eax, [esp + 0x30]
push eax
call fcn.00441290
add esp, 4
mov ecx, esi
call fcn.0043f100
add eax, 0x4fc
mov edi, 0x55eb24
mov eax, dword [eax]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x44161f
test cl, cl
je 0x44161b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x44161f
add eax, 2
add edi, 2
test cl, cl
jne 0x4415fb
xor eax, eax
jmp 0x441623
sbb eax, eax
sbb eax, ebx
cmp eax, ebp
je 0x44165f
mov eax, dword [esp + 0x30]
push 1
lea ecx, [esp + 0x34]
mov eax, dword [eax - 8]
dec eax
push eax
call fcn.004d4c96
mov ecx, esi
call fcn.0043f100
add eax, 0x4fc
lea ecx, [esp + 0x30]
push eax
call fcn.004dcc9a
push 0x5514a0
lea ecx, [esp + 0x34]
call fcn.004dcc5e
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x84]
call fcn.004dc5f7
lea ecx, [esp + 0x80]
mov byte [esp + 0x117c], 0xa
call fcn.004dcda4
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x4416b3
test cl, cl
je 0x4416af
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x4416b3
add eax, 2
add edi, 2
test cl, cl
jne 0x44168f
xor eax, eax
jmp 0x4416b7
sbb eax, eax
sbb eax, ebx
cmp eax, ebp
mov ecx, esi
jne 0x4416f7
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 3
ja case.default.0x44170e
jmp dword [eax*4 + 0x444030]
push 0x5515cc
jmp 0x44172f
push 0x54f19c
jmp 0x44172f
push 0x54f190
jmp 0x44172f
push 0x5515c8
jmp 0x44172f
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 3
ja case.default.0x44170e
jmp dword [eax*4 + 0x444040]
push 0x5510f4
jmp 0x44172f
push 0x5510e4
jmp 0x44172f
push 0x5510e0
jmp 0x44172f
push 0x5510d8
lea ecx, [esp + 0x34]
call fcn.004dcc5e
mov eax, dword [0x55a6f0]
mov dword [esp + 0x48], eax
mov ecx, esi
mov byte [esp + 0x117c], 0xb
call fcn.0043f100
cmp dword [eax + 0x500], ebp
je 0x441874
cmp dword [esp + 0x64], ebp
je 0x441874
lea ecx, [esp + 0x1184]
push ecx
lea ecx, [esp + 0x38]
call fcn.004dc5f7
mov eax, dword [0x55a6f0]
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], eax
push ebp
mov bl, 0xe
push ebp
push 0x100
lea ecx, [esp + 0x24]
mov byte [esp + 0x1188], bl
call fcn.004dccb2
push eax
push 0x100
lea ecx, [esp + 0x50]
call fcn.004dccb2
push eax
push 0x104
lea ecx, [esp + 0x48]
call fcn.004dccb2
push eax
call fcn.004c20ef
add esp, 0x14
lea ecx, [esp + 0x34]
push 0xffffffffffffffff
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x44]
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
call fcn.004dcd01
lea edx, [esp + 0x18]
lea eax, [esp + 0x40]
push edx
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.004dcab1
lea edx, [esp + 0x30]
mov byte [esp + 0x117c], 0xf
push edx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004dcab1
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1180], 0x10
call fcn.004dc9bb
lea ecx, [esp + 0x28]
mov byte [esp + 0x117c], 0xf
call fcn.004dc882
lea ecx, [esp + 0x68]
mov byte [esp + 0x117c], bl
call fcn.004dc882
lea ecx, [esp + 0x18]
mov byte [esp + 0x117c], 0xd
call fcn.004dc882
lea ecx, [esp + 0x40]
mov byte [esp + 0x117c], 0xc
call fcn.004dc882
mov byte [esp + 0x117c], 0xb
lea ecx, [esp + 0x34]
jmp 0x4418e9
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x4e8]
mov edi, dword [ecx - 8]
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x4e8]
mov al, byte [edx + edi - 1]
cmp al, 0x5c
je 0x4418af
push 0x5c
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x4e8
call fcn.004dcc85
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.0043f100
add eax, 0x4e8
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.004dcab1
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1180], 0x11
call fcn.004dc9bb
mov byte [esp + 0x117c], 0xb
lea ecx, [esp + 0x28]
call fcn.004dc882
push 0x88
call fcn.004dc5c3
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, ebp
mov byte [esp + 0x117c], 0x12
je 0x441927
mov edx, dword [esp + 0xb8]
push ebp
lea ecx, [esp + 0x1188]
push edx
push ecx
mov ecx, eax
call fcn.00456da0
mov edi, eax
jmp 0x441929
xor edi, edi
mov eax, dword [edi + 0xc]
mov byte [esp + 0x117c], 0xb
mov dword [esp + 0x14], edi
cmp dword [eax + 4], ebp
jle 0x443e51
cmp dword [eax + 8], ebp
jle 0x443e51
mov eax, dword [esp + 0x48]
lea edx, [esp + 0xcc]
push edx
push ebp
push eax
lea ecx, [esp + 0xec]
call fcn.004dd485
test eax, eax
je 0x441a39
lea ecx, [esp + 0xe0]
call fcn.004dd6a0
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x4f0]
cmp ecx, ebp
mov ecx, dword [esp + 0x48]
push ecx
je 0x441a18
mov edx, dword [0x55f320]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.004d5408
add esp, 8
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
cmp edi, ebp
je 0x4419ca
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
lea ecx, [esp + 0x48]
mov byte [esp + 0x117c], 0xa
call fcn.004dc882
lea ecx, [esp + 0x80]
mov byte [esp + 0x117c], 8
call fcn.004dc882
lea ecx, [esp + 0x30]
mov byte [esp + 0x117c], 6
call fcn.004dc882
mov dword [esp + 0xcc], vtable.CFileException.0
mov byte [esp + 0x117c], 0x17
jmp 0x443fb7
mov edx, dword [0x55f324]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.004d5408
add esp, 8
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
jmp 0x441a5d
mov eax, dword [esp + 0x48]
mov ecx, dword [0x55f328]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x650
call fcn.0041ec80
mov ebp, eax
mov ecx, esi
mov dword [esp + 0xbc], ebp
call fcn.0043f100
mov ecx, eax
add ecx, 0x670
call fcn.0041ec80
mov dword [esp + 0xc0], eax
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x441b71
mov ebx, dword [edi + 0xc]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x6e8]
test ecx, ecx
je 0x441ad0
mov ecx, dword [ebx + 0x68]
mov dword [esp + 0xbc], ecx
jmp 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x534]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x574]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x5e4]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x560]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x548]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x550]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x558]
test ecx, ecx
jne 0x441b71
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x614]
test ecx, ecx
jne 0x441b71
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x441b71
mov eax, dword [ebx + 0x68]
cmp ebp, eax
jle 0x441b71
mov dword [esp + 0xbc], eax
mov ecx, esi
call fcn.0043f100
mov ebx, dword [eax + 0x6ec]
xor ebp, ebp
xor edx, edx
cmp ebx, ebp
sete dl
mov ecx, edi
mov dword [esp + 0x40], edx
call fcn.00458060
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x504], ebp
je 0x441e17
cmp dword [esp + 0x64], ebp
je 0x441e17
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x508]
mov ecx, esi
mov dword [esp + 0x78], eax
call fcn.0043f100
mov ecx, dword [eax + 0x510]
mov dword [esp + 0x68], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x51c]
mov ecx, esi
mov dword [esp + 0x54], edx
call fcn.0043f100
mov ebx, dword [eax + 0x50c]
mov ecx, esi
mov dword [esp + 0x20], 0xff
mov dword [esp + 0x1c], 0x80
mov dword [esp + 0x44], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], ebp
call fcn.0043f100
cmp dword [eax + 0x514], ebp
jne 0x441c24
mov dword [esp + 0x58], ebp
jmp 0x441c75
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x514]
cmp ecx, ebp
mov ecx, esi
jl 0x441c52
call fcn.0043f100
fild dword [eax + 0x514]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fdiv dword [0x505504]
jmp 0x441c6b
call fcn.0043f100
fild dword [eax + 0x514]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fdiv dword [0x505500]
fadd dword [0x5054fc]
fstp dword [esp + 0x58]
cmp ebx, ebp
je 0x441ce9
lea eax, [esp + 0x24]
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
push edi
call fcn.0045b810
mov ecx, dword [esp + 0x28]
mov eax, 0x51eb851f
imul ecx, ebx
imul ecx
sar edx, 5
mov eax, edx
add esp, 0x10
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov ecx, edx
mov edx, dword [esp + 0x34]
imul edx, ebx
imul edx
sar edx, 5
mov eax, edx
mov dword [esp + 0x18], ecx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
imul edx, ebx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x441ced
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x54], ebp
je 0x441dad
lea ecx, [esp + 0x44]
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x4c]
push eax
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x30]
push edx
lea ecx, [esp + 0x58]
push eax
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x3c]
push edx
push eax
push 1
push edi
call fcn.0045baa0
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x80]
add ecx, 0xffffff01
mov eax, 0x51eb851f
imul ecx, ebx
add ecx, 0x639c
add esp, 0x2c
imul ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xffffff80
imul ecx, ebx
sar edx, 5
mov eax, edx
add ecx, 0x3200
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov ebp, edx
imul ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x20], ebp
imul ecx, dword [esp + 0x54]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov ebx, edx
imul ecx
sar edx, 5
mov ecx, edx
mov dword [esp + 0x1c], ebx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x18]
mov eax, edx
mov dword [esp + 0x44], eax
jmp 0x441db9
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
push 0
push edx
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x30]
push ecx
push edx
mov edx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x3c]
push ecx
push edx
mov edx, dword [esp + 0x54]
push edx
push ecx
push 0
push eax
push ebx
push ebp
mov edx, dword [esp + 0xa0]
push 0
mov ecx, dword [esp + 0xb4]
push eax
push ebx
push ebp
push 0
push eax
mov eax, dword [esp + 0xa8]
push ebx
push ebp
push eax
push edx
push ecx
push eax
push edx
push ecx
push eax
push edx
push ecx
push edi
call fcn.0045bbd0
add esp, 0x80
xor ebp, ebp
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x534], ebp
je 0x441ee8
cmp dword [esp + 0x64], ebp
je 0x441ee8
mov ebx, dword [0x55f32c]
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x540]
mov ecx, esi
push eax
call fcn.0043f100
fild dword [eax + 0x53c]
sub esp, 8
mov ecx, esi
fstp qword [esp + 0x44]
fld qword [esp + 0x44]
fdiv qword [0x505078]
fstp qword [esp]
call fcn.0043f100
mov ecx, dword [eax + 0x538]
lea edx, [esp + 0x1c]
push ecx
push ebx
push edx
call fcn.004d5408
add esp, 0x14
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x540]
push ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x53c]
mov ecx, esi
push edx
call fcn.0043f100
mov eax, dword [eax + 0x538]
push eax
push 1
push edi
call fcn.0045b460
add esp, 0x14
cmp edi, ebp
mov ebx, eax
je 0x441ee0
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov ebp, ebx
mov dword [esp + 0x14], ebp
jmp 0x441eec
mov ebp, dword [esp + 0x14]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x504]
mov ebx, dword [esp + 0x64]
test ecx, ecx
je 0x441f49
test ebx, ebx
je 0x441f49
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x518]
test ecx, ecx
je 0x441f49
push 0
push 0xa
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x518]
shl eax, 1
push eax
push ebp
call fcn.0045ce30
add esp, 0x10
mov edi, eax
test ebp, ebp
je 0x441f43
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov ebp, edi
mov dword [esp + 0x14], ebp
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x520]
test ecx, ecx
je 0x441fcc
test ebx, ebx
je 0x441fcc
mov ecx, esi
call fcn.0043f100
mov ebp, dword [eax + 0x524]
mov ecx, esi
call fcn.0043f100
mov ebx, dword [eax + 0x528]
mov ecx, esi
call fcn.0043f100
mov edi, dword [eax + 0x530]
mov ecx, esi
add edi, ebp
call fcn.0043f100
mov eax, dword [eax + 0x52c]
sub esp, 0x10
mov ecx, esp
add eax, ebx
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
mov edi, dword [esp + 0x24]
push edi
call fcn.00459f80
add esp, 0x14
mov ebx, eax
test edi, edi
je 0x441fc2
mov ecx, edi
push 1
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [esp + 0x14], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x64]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x544]
test ecx, ecx
je 0x442069
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x568]
test ecx, ecx
je 0x442069
test ebx, ebx
je 0x442069
mov edi, dword [0x55f330]
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x568]
lea ecx, [esp + 0x10]
push eax
push edi
push ecx
call fcn.004d5408
add esp, 8
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, esi
call fcn.0043f100
fild dword [eax + 0x568]
fstp qword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
push ecx
push ebp
call fcn.00459d30
add esp, 0xc
mov edi, eax
test ebp, ebp
je 0x442063
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov ebp, edi
mov dword [esp + 0x14], ebp
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x544]
test ecx, ecx
je 0x44237e
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x550]
test ecx, ecx
jne 0x4420b5
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x548]
test ecx, ecx
jne 0x4420b5
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x558]
test ecx, ecx
je 0x44237e
test ebx, ebx
je 0x44237e
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x560]
test ecx, ecx
je 0x442183
mov ecx, esi
call fcn.0043f100
mov ebx, dword [eax + 0x54c]
mov ecx, esi
call fcn.0043f100
mov ebp, dword [eax + 0x554]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x558]
test ecx, ecx
je 0x44210c
mov ecx, esi
call fcn.0043f100
mov edi, dword [eax + 0x55c]
jmp 0x44210e
xor edi, edi
mov ecx, esi
call fcn.0043f100
mov ecx, dword [0x55f334]
mov eax, dword [eax + 0x564]
push edi
push ebp
push ebx
lea edx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x3c], eax
call fcn.004d5408
add esp, 0x10
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x570]
push ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x56c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push edx
push eax
push edi
push ebp
push ebx
push ecx
call fcn.0045d2f0
add esp, 0x1c
jmp 0x442363
mov eax, dword [ebp + 0xc]
mov ecx, esi
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x68], eax
fild dword [esp + 0x28]
fstp qword [esp + 0x38]
fild dword [esp + 0x68]
fstp qword [esp + 0xb0]
fld qword [esp + 0x38]
fdiv qword [esp + 0xb0]
fstp qword [esp + 0x38]
call fcn.0043f100
mov ecx, dword [eax + 0x548]
test ecx, ecx
je 0x44221c
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x550]
test ecx, ecx
je 0x44221c
mov ecx, esi
call fcn.0043f100
mov edi, dword [eax + 0x54c]
mov ecx, esi
call fcn.0043f100
mov ebp, dword [eax + 0x554]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x558]
test ecx, ecx
je 0x442215
mov ecx, esi
call fcn.0043f100
mov ebx, dword [eax + 0x55c]
jmp 0x4422fc
xor ebx, ebx
jmp 0x4422fc
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x548]
test ecx, ecx
je 0x442276
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x550]
test ecx, ecx
jne 0x442276
mov ecx, esi
call fcn.0043f100
mov edi, dword [eax + 0x54c]
mov ecx, esi
call fcn.0043f100
fild dword [eax + 0x54c]
fstp qword [esp + 0xb0]
fld qword [esp + 0xb0]
fdiv qword [esp + 0x38]
call fcn.004c22c8
mov ebp, eax
jmp 0x4421f2
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x548]
test ecx, ecx
jne 0x4422c3
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x550]
test ecx, ecx
je 0x4422c3
mov ecx, esi
call fcn.0043f100
fild dword [eax + 0x554]
fstp qword [esp + 0xb0]
fld qword [esp + 0xb0]
fmul qword [esp + 0x38]
call fcn.004c22c8
mov edi, eax
jmp 0x4421e5
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x558]
test ecx, ecx
je 0x4422f0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
mov ecx, esi
mov edi, dword [eax + 4]
mov ebp, dword [eax + 8]
call fcn.0043f100
mov ebx, dword [eax + 0x55c]
jmp 0x4422fc
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x38]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x570]
test ecx, ecx
je 0x442326
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 4]
cmp ecx, edi
jge 0x44231d
mov edi, ecx
mov eax, dword [eax + 8]
cmp eax, ebp
jge 0x442326
mov ebp, eax
mov eax, dword [0x55f334]
push ebx
push ebp
push edi
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.004d5408
add esp, 0x10
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov eax, dword [esp + 0x14]
push ebx
push ebp
push edi
push eax
call fcn.0045aaf0
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov edi, eax
test ecx, ecx
je 0x442374
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], edi
mov ebp, edi
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x574]
test ecx, ecx
jne 0x4423a4
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x5e4]
test ecx, ecx
je 0x4428ec
test ebx, ebx
je 0x4428ec
mov eax, dword [0x55a6f0]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov ecx, esi
mov byte [esp + 0x117c], 0x18
call fcn.0043f100
mov eax, dword [eax + 0x5c8]
mov ecx, esi
dec eax
mov dword [esp + 0xf4], eax
call fcn.0043f100
mov ecx, dword [eax + 0x5b8]
mov dword [esp + 0xf8], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5cc]
mov ecx, esi
mov dword [esp + 0xfc], edx
call fcn.0043f100
mov eax, dword [eax + 0x5d0]
mov ecx, esi
mov dword [esp + 0x100], eax
call fcn.0043f100
mov ecx, dword [eax + 0x5d4]
mov dword [esp + 0x104], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5d8]
mov ecx, esi
mov dword [esp + 0x108], edx
call fcn.0043f100
add eax, 0x578
lea ecx, [esp + 0x10c]
push eax
call fcn.004dc9bb
lea eax, [esp + 0x1184]
lea ecx, [esp + 0x58]
push eax
call fcn.004dc5f7
mov eax, dword [0x55a6f0]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], eax
mov bl, 0x1d
push 0x100
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1180], bl
call fcn.004dccb2
push eax
push 0x100
lea ecx, [esp + 0x3c]
call fcn.004dccb2
push eax
push 0x100
lea ecx, [esp + 0x2c]
call fcn.004dccb2
push eax
push 0x100
lea ecx, [esp + 0x2c]
call fcn.004dccb2
push eax
push 0x104
lea ecx, [esp + 0x6c]
call fcn.004dccb2
push eax
call fcn.004c20ef
add esp, 0x14
lea ecx, [esp + 0x58]
push 0xffffffffffffffff
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x24]
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x38]
call fcn.004dcd01
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
call fcn.004dcd01
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.004dcab1
push eax
lea ecx, [esp + 0x114]
mov byte [esp + 0x1180], 0x1e
call fcn.004dc9bb
lea ecx, [esp + 0x28]
mov byte [esp + 0x117c], bl
call fcn.004dc882
lea ecx, [esp + 0x18]
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.004dcab1
push eax
lea ecx, [esp + 0x118]
mov byte [esp + 0x1180], 0x1f
call fcn.004dc9bb
lea ecx, [esp + 0x28]
mov byte [esp + 0x117c], bl
call fcn.004dc882
mov ecx, esi
call fcn.0043f100
add eax, 0x598
lea ecx, [esp + 0x118]
push eax
call fcn.004dca0b
mov ecx, esi
call fcn.0043f100
xor ecx, ecx
mov cl, byte [eax + 0x590]
mov dword [esp + 0x11c], ecx
mov ecx, esi
call fcn.0043f100
mov edi, dword [eax + 0x58c]
xor edx, edx
cmp edi, 0x2bc
mov ecx, esi
sete dl
mov dword [esp + 0x120], edx
call fcn.0043f100
mov eax, dword [eax + 0x57c]
mov ecx, esi
mov dword [esp + 0x124], eax
call fcn.0043f100
mov ecx, dword [eax + 0x5bc]
mov dword [esp + 0x128], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5c0]
mov ecx, esi
mov dword [esp + 0x12c], edx
call fcn.0043f100
mov eax, dword [eax + 0x5c4]
xor edi, edi
mov ecx, esi
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edi
call fcn.0043f100
mov ecx, dword [eax + 0x604]
mov dword [esp + 0x13c], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x608]
mov ecx, esi
mov dword [esp + 0x140], edx
call fcn.0043f100
mov eax, dword [eax + 0x60c]
mov ecx, esi
mov dword [esp + 0x144], eax
call fcn.0043f100
mov ecx, dword [eax + 0x610]
mov dword [esp + 0x148], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5e0]
mov ecx, esi
mov dword [esp + 0x14c], edx
call fcn.0043f100
mov eax, dword [eax + 0x5f4]
mov ecx, esi
dec eax
mov dword [esp + 0x150], eax
call fcn.0043f100
mov ecx, dword [eax + 0x5e8]
mov dword [esp + 0x154], ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5f8]
mov ecx, esi
mov dword [esp + 0x158], edx
call fcn.0043f100
mov eax, dword [eax + 0x5fc]
mov ecx, esi
mov dword [esp + 0x15c], eax
call fcn.0043f100
cmp dword [eax + 0x5e0], edi
je 0x44272a
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x5e0]
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x30], edi
je 0x44272a
mov dword [esp + 0x164], 1
mov dword [esp + 0x168], 0x818080
jmp 0x44276c
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x5ec], edi
je 0x44275a
mov ecx, esi
mov dword [esp + 0x164], 1
call fcn.0043f100
mov edx, dword [eax + 0x5f0]
mov dword [esp + 0x168], edx
jmp 0x44276c
mov dword [esp + 0x164], edi
mov dword [esp + 0x168], 0xffffff
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x600]
mov ecx, esi
mov dword [esp + 0x160], eax
mov dword [esp + 0x16c], edi
call fcn.0043f100
cmp dword [eax + 0x574], edi
je 0x4427b3
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x5e4], edi
je 0x4427b3
mov ecx, dword [0x55f338]
lea edx, [esp + 0x10]
push ecx
push edx
jmp 0x4427ea
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x5e4], edi
je 0x4427cf
mov eax, dword [0x55f33c]
lea ecx, [esp + 0x10]
push eax
push ecx
jmp 0x4427ea
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x574], edi
je 0x4427f2
mov edx, dword [0x55f340]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.004d5408
add esp, 8
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
lea eax, [esp + 0xf4]
push eax
call fcn.004561d0
add esp, 4
lea ecx, [esp + 0xf4]
push ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x5e4]
mov ecx, esi
push edx
call fcn.0043f100
mov eax, dword [eax + 0x574]
push eax
push ebp
call fcn.00465300
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x117c], 0x1c
call fcn.004dc882
lea ecx, [esp + 0x34]
mov byte [esp + 0x117c], 0x1b
call fcn.004dc882
lea ecx, [esp + 0x20]
mov byte [esp + 0x117c], 0x1a
call fcn.004dc882
lea ecx, [esp + 0x1c]
mov byte [esp + 0x117c], 0x19
call fcn.004dc882
lea ecx, [esp + 0x58]
mov byte [esp + 0x117c], 0x18
call fcn.004dc882
lea ecx, [esp + 0x118]
mov byte [esp + 0x117c], 0x22
call fcn.004dc882
lea ecx, [esp + 0x114]
mov byte [esp + 0x117c], 0x21
call fcn.004dc882
lea ecx, [esp + 0x110]
mov byte [esp + 0x117c], 0x20
call fcn.004dc882
lea ecx, [esp + 0x10c]
mov byte [esp + 0x117c], 0xb
call fcn.004dc882
mov ecx, esi
mov dword [esp + 0x78], 0
call fcn.0043f100
mov ecx, dword [eax + 0x644]
test ecx, ecx
jle 0x442912
push ebp
call fcn.00459bb0
add esp, 4
mov dword [esp + 0x78], eax
mov eax, dword [0x55eb88]
mov ebx, dword [esp + 0x44]
test eax, eax
je 0x442928
push ebp
call fcn.0045d6d0
add esp, 4
call fcn.00452e00
mov edi, dword [eax + 0x1bc]
call fcn.00452e00
mov ecx, dword [eax + 0x1c4]
mov ebp, dword [ecx + edi*4]
mov ecx, esi
mov dword [esp + 0x38], ebp
call fcn.0043f100
mov ecx, dword [eax + 0x614]
xor edi, edi
cmp ecx, edi
je 0x442b28
cmp dword [esp + 0x64], edi
je 0x442b28
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x4ec]
lea eax, [esp + 0x88]
push edx
push eax
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x638]
push ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x634]
mov ecx, esi
push edx
call fcn.0043f100
mov eax, dword [eax + 0x630]
mov ecx, esi
push eax
call fcn.0043f100
mov ecx, dword [eax + 0x62c]
push ecx
push 0
push 0
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x628]
mov ecx, esi
push edx
call fcn.0043f100
mov eax, dword [eax + 0x624]
mov ecx, esi
push eax
call fcn.0043f100
mov ecx, dword [eax + 0x620]
push ecx
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x61c]
mov ecx, esi
push edx
push ebp
push edi
call fcn.0043f100
mov eax, dword [eax + 0x640]
mov ecx, esi
push eax
call fcn.0043f100
mov ecx, dword [eax + 0x618]
mov ebp, dword [esp + 0xc0]
add ecx, ebp
mov ebp, dword [esp + 0x50]
push ecx
push ebp
call fcn.00462920
mov edi, eax
mov eax, dword [esp + 0xcc]
add esp, 0x44
test eax, eax
jle 0x442aef
test ebp, ebp
je 0x442a49
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov ecx, esi
mov dword [esp + 0x14], edi
call fcn.0043f100
cmp dword [eax + 0x628], 1
jne 0x442a89
mov edi, dword [0x55f344]
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x638]
mov ecx, dword [esp + 0x88]
push eax
push ecx
lea edx, [esp + 0x18]
push edi
push edx
call fcn.004d5408
add esp, 0x10
jmp 0x442ae1
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x628], 2
jne 0x442ac5
mov edi, dword [0x55f348]
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x634]
mov ecx, dword [esp + 0x88]
push eax
push ecx
lea edx, [esp + 0x18]
push edi
push edx
call fcn.004d5408
add esp, 0x10
jmp 0x442ae1
mov eax, dword [esp + 0x88]
mov ecx, dword [0x55f34c]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 0xc
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x54], esp
push eax
jmp 0x442b1a
test edi, edi
je 0x442afc
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov eax, dword [0x55f350]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.004d5408
add esp, 4
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
xor edi, edi
mov ebp, 1
mov ecx, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0xc8], 0xffffffff
mov dword [esp + 0x68], 0x7fffffff
mov dword [esp + 0x58], ebp
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
sub eax, edi
je 0x442bf0
dec eax
je 0x442bb3
dec eax
jne 0x442c09
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6b8
call fcn.0041ec80
mov ebx, eax
cmp ebx, 2
mov dword [esp + 0x44], ebx
jge 0x442b9e
mov ebx, 2
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x14]
call fcn.00457e70
cmp ebx, eax
jle 0x442c09
mov ebx, eax
mov dword [esp + 0x44], ebx
jmp 0x442c09
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x688
call fcn.0041ec80
mov ebx, eax
cmp ebx, 2
mov dword [esp + 0x44], ebx
jge 0x442bdb
mov ebx, 2
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x14]
call fcn.00457e70
cmp ebx, eax
jle 0x442c09
mov ebx, eax
mov dword [esp + 0x44], ebx
jmp 0x442c09
mov ebx, dword [esp + 0xbc]
cmp ebx, ebp
mov dword [esp + 0x44], ebx
jge 0x442c05
mov ebx, ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x58], edi
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x20], 1
jle 0x442e2b
cmp ebp, dword [esp + 0x68]
jge 0x442c4b
mov ecx, esi
call fcn.0043f100
cmp ebp, dword [eax + 0x4f8]
jle 0x442c4b
mov edi, dword [esp + 0x24]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x28], edi
jmp 0x442c4f
mov edi, dword [esp + 0x24]
cmp ebp, dword [esp + 0xc8]
jle 0x442c72
mov ecx, esi
call fcn.0043f100
cmp ebp, dword [eax + 0x4f8]
jg 0x442c72
mov dword [esp + 0xc8], ebp
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov eax, ebp
sub edi, ecx
sub eax, edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
fild dword [esp + 0x18]
test eax, eax
fstp dword [esp + 0x18]
fild dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdiv dword [esp + 0x18]
fstp dword [esp + 0x50]
fild dword [esp + 0x54]
fstp dword [esp + 0x60]
fild dword [esp + 0x4c]
fstp dword [esp + 0x54]
fld dword [esp + 0x60]
fmul dword [esp + 0x54]
fild dword [esp + 0x24]
fstp dword [esp + 0x60]
fild dword [esp + 0x34]
fstp dword [esp + 0x54]
fld dword [esp + 0x60]
fmul dword [esp + 0x54]
fsubp st(1)
fdiv dword [esp + 0x18]
fstp dword [esp + 0x54]
je 0x442d05
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x442cfd
mov ecx, dword [esp + 0x24]
mov eax, ecx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x442d33
mov dword [esp + 0x58], 0
mov ecx, esi
call fcn.0043f100
fild dword [eax + 0x4f8]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fmul dword [esp + 0x50]
fadd dword [esp + 0x54]
fadd dword [0x50a030]
call fcn.004c22c8
mov ecx, dword [esp + 0x24]
mov edi, eax
cmp edi, 2
jge 0x442d3d
mov edi, 2
mov eax, dword [esp + 0x44]
cmp edi, eax
jle 0x442d47
mov edi, eax
mov edx, dword [esp + 0x1c]
cmp edi, edx
jg 0x442d52
lea edi, [edx + 1]
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x442d5d
lea edi, [eax - 1]
cmp edi, 2
jge 0x442d67
mov edi, 2
cmp edi, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], ebp
jne 0x442e00
cmp edx, 2
jge 0x442d84
mov dword [esp + 0x1c], 2
mov ecx, dword [0x55a6f0]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
mov edi, dword [0x55f590]
push edx
push eax
mov ecx, esi
mov byte [esp + 0x1184], 0x23
call fcn.0043f100
mov ecx, dword [eax + 0x4f8]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0x28]
push edi
push eax
call fcn.004d5408
mov ecx, dword [esp + 0x30]
add esp, 0x18
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp eax, edx
je 0x443606
lea ecx, [esp + 0x18]
mov dword [esp + 0x20], 0
mov edi, edx
mov byte [esp + 0x117c], 0xb
call fcn.004dc882
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], edi
cmp eax, 0xf
jle 0x442e2b
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
cmp eax, 2
jge 0x442e27
mov eax, 2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 3
ja case.default.0x442e48
jmp dword [eax*4 + 0x444050]
test ebx, ebx
jne 0x442edc
push 0x88
call fcn.004dc5c3
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x117c], 0x24
je 0x442e7f
mov ecx, eax
call fcn.00456c20
mov edi, eax
jmp 0x442e81
xor edi, edi
mov ebp, dword [esp + 0x14]
push 0xffffffffffffffff
push 0x18
mov ebx, edi
mov eax, dword [ebp + 0xc]
mov byte [esp + 0x1184], 0xb
mov dword [esp + 0x34], ebx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
push eax
mov ecx, edi
call fcn.00457640
call fcn.00452e00
mov eax, dword [eax + 0xe8]
push eax
call fcn.004600a0
add esp, 4
mov ecx, edi
push 2
call fcn.00457a60
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push ecx
mov ecx, ebp
call fcn.00404f70
mov ecx, edi
call fcn.0042cdd0
mov eax, dword [0x55eb70]
test eax, eax
je 0x442f2f
cmp dword [0x55ec18], 0xa3425ac3
jne 0x442f2f
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x690
call fcn.0041ec80
mov edx, dword [esp + 0x40]
push eax
push edx
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6b0
call fcn.0041ec80
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push ecx
push 0
jmp 0x442f78
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x690
call fcn.0041ec80
mov edx, dword [esp + 0x40]
push eax
push edx
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6b0
call fcn.0041ec80
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push ecx
push 0x104
lea ecx, [esp + 0x64]
call fcn.004dccb2
push eax
call fcn.0045e5d0
mov ebp, eax
add esp, 0x1c
xor edx, edx
mov dword [esp + 0x4c], ebp
test ebp, ebp
setne dl
mov dword [esp + 0x6c], edx
jmp case.default.0x442e48
test ebx, ebx
jne 0x443023
push 0x88
call fcn.004dc5c3
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x117c], 0x25
je 0x442fc6
mov ecx, eax
call fcn.00456c20
mov edi, eax
jmp 0x442fc8
xor edi, edi
mov ebp, dword [esp + 0x14]
push 0xffffffffffffffff
push 0x18
mov ebx, edi
mov eax, dword [ebp + 0xc]
mov byte [esp + 0x1184], 0xb
mov dword [esp + 0x34], ebx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
push eax
mov ecx, edi
call fcn.00457640
call fcn.00452e00
mov eax, dword [eax + 0xe8]
push eax
call fcn.004600a0
add esp, 4
mov ecx, edi
push 4
call fcn.00457a60
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push ecx
mov ecx, ebp
call fcn.00404f70
mov ecx, edi
call fcn.0042cdd0
mov eax, dword [0x55eb70]
test eax, eax
je 0x443076
cmp dword [0x55ec18], 0xa3425ac3
jne 0x443076
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6c0
call fcn.0041ec80
mov edx, dword [esp + 0x40]
push eax
push edx
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6e0
call fcn.0041ec80
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push ecx
push 0
jmp 0x4430bf
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6c0
call fcn.0041ec80
mov edx, dword [esp + 0x40]
push eax
push edx
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x6e0
call fcn.0041ec80
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push ecx
push 0x104
lea ecx, [esp + 0x64]
call fcn.004dccb2
push eax
call fcn.0045e650
mov ebp, eax
add esp, 0x1c
xor edx, edx
mov dword [esp + 0x4c], ebp
test ebp, ebp
setne dl
mov dword [esp + 0x6c], edx
jmp case.default.0x442e48
test ebx, ebx
jne 0x4433c6
push 0x88
call fcn.004dc5c3
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x117c], 0x26
je 0x44310d
mov ecx, eax
call fcn.00456c20
mov edi, eax
jmp 0x44310f
xor edi, edi
mov ebp, dword [esp + 0x14]
push 0xffffffffffffffff
push 0x18
mov byte [esp + 0x1184], 0xb
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], edi
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
push eax
mov ecx, edi
call fcn.00457640
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x680
call fcn.0041ec80
push eax
mov eax, dword [esp + 0xc4]
push eax
push 0
push ebp
mov ecx, edi
call fcn.004584b0
cmp dword [0x55ec18], 0x454e16d
je 0x443259
lea ecx, [esp + 0x94]
mov byte [esp + 0x94], 0x21
push ecx
mov byte [esp + 0x99], 0x79
mov byte [esp + 0x9a], 0x62
mov byte [esp + 0x9b], 0x75
mov byte [esp + 0x9c], 0x2f
mov byte [esp + 0x9d], 0x64
mov byte [esp + 0x9e], 0x70
mov byte [esp + 0x9f], 0x6e
mov byte [esp + 0xa0], 0x21
mov byte [esp + 0xa1], 0x4a
mov byte [esp + 0xa2], 0x6e
mov byte [esp + 0xa3], 0x62
mov byte [esp + 0xa4], 0x68
mov byte [esp + 0xa5], 0x66
mov byte [esp + 0xa6], 0x21
mov byte [esp + 0xa7], 0x50
mov byte [esp + 0xa8], 0x71
mov byte [esp + 0xa9], 0x75
mov byte [esp + 0xaa], 0x6a
mov byte [esp + 0xab], 0x6e
mov byte [esp + 0xac], 0x6a
mov byte [esp + 0xad], 0x7b
mov byte [esp + 0xae], 0x66
mov byte [esp + 0xaf], 0x73
mov byte [esp + 0xb0], 0x21
mov byte [esp + 0xb1], 0
call fcn.00421b80
lea edx, [esp + 0x98]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
jmp 0x44327d
mov eax, dword [esp + 0x40]
push ecx
test eax, eax
je 0x443272
mov eax, esp
mov dword [esp + 0x54], esp
push eax
mov ecx, ebp
call fcn.00404f70
jmp 0x443282
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x55eb24
call fcn.004dc8f0
mov ecx, edi
call fcn.0042cdd0
mov ebp, dword [edi + 0xc]
mov dword [esp + 0x18], 0
mov ecx, dword [ebp + 4]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
inc eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
cdq
and edx, 7
add eax, edx
sar eax, 3
test eax, eax
jle 0x443352
xor ebx, ebx
mov eax, ecx
xor ebp, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
test eax, eax
jle 0x44332c
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x658
call fcn.0041ec80
mov edx, dword [esp + 0x74]
mov ecx, eax
mov eax, dword [edi + 0x84]
sub ecx, edx
mov edx, ebx
add edx, eax
xor eax, eax
mov al, byte [edx + ebp]
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
lea eax, [ebx + ebp]
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [edi + 0x78]
inc ebp
mov byte [eax + ecx], dl
mov edx, dword [edi + 0xc]
mov ecx, dword [edx + 4]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp ebp, eax
jl 0x4432ce
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x18]
add ebx, eax
mov eax, dword [edi + 0xc]
inc ebp
mov eax, dword [eax + 8]
mov dword [esp + 0x18], ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp ebp, eax
jl 0x4432bd
mov ebp, 1
mov ecx, edi
push ebp
call fcn.00457a60
mov ecx, dword [edi + 0xc]
call fcn.0045e5b0
mov ebx, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
mov eax, dword [ebx + 0xc]
add eax, 0x40
push eax
call fcn.0045e510
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x4c], ebp
mov edx, dword [edi + 0xc]
mov dword [edx + 0x54], 0
call fcn.00452e00
mov ecx, dword [edi + 0xc]
mov eax, dword [eax + 0xec]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov dword [edx + 0x58], ebp
call fcn.00452e00
mov ecx, dword [eax + 0xec]
test ecx, ecx
je 0x4433c6
mov ebp, dword [0x55f948]
push ebx
push edi
call fcn.004632a0
add esp, 8
mov dword [0x55f948], ebp
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x678
call fcn.0041ec80
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x80]
add ecx, eax
push ecx
mov ecx, edi
call fcn.00458940
mov dword [esp + 0x4c], eax
mov eax, dword [0x55eb70]
test eax, eax
je 0x443420
cmp dword [0x55ec18], 0xa3425ac3
jne 0x443420
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x6c], 1
mov ebx, edi
jmp case.default.0x442e48
lea edx, [esp + 0x48]
push 1
push edx
mov ecx, edi
call fcn.00457390
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
jmp case.default.0x442e48
mov edi, dword [esp + 0x14]
xor ebp, ebp
push edi
mov dword [esp + 0x24], ebp
call fcn.00459bb0
mov ebx, eax
mov eax, dword [0x55eb70]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x2c], ebx
je 0x443494
cmp dword [0x55ec18], 0xa3425ac3
jne 0x443494
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x6c], 1
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea eax, [ecx + 1]
imul eax, edx
lea ebp, [eax + eax*2 + 0xec]
mov dword [esp + 0x4c], ebp
jmp case.default.0x442e48
push 5
mov ecx, ebx
call fcn.00457a60
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ebp
je 0x4434b2
mov eax, dword [eax + 0x34]
push eax
push ebx
call fcn.0045d650
add esp, 8
cmp dword [esp + 0x40], ebp
je 0x4434d6
lea eax, [esp + 0xb0]
mov ecx, edi
push eax
call fcn.00404f70
or dword [esp + 0x5c], 1
mov byte [esp + 0x117c], 0x27
jmp 0x4434f7
push 0x55eb24
lea ecx, [esp + 0xf4]
call fcn.004dc8f0
or dword [esp + 0x5c], 2
mov dword [esp + 0x117c], 0x28
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push eax
call fcn.004dc5f7
mov ecx, ebx
call fcn.0042cdd0
mov al, byte [esp + 0x5c]
mov dword [esp + 0x117c], 0x27
test al, 2
je 0x443534
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xf0]
and al, 0xfd
mov dword [esp + 0x5c], eax
call fcn.004dc882
mov al, byte [esp + 0x5c]
mov dword [esp + 0x117c], 0xb
test al, 1
je 0x44355d
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xb0]
and al, 0xfe
mov dword [esp + 0x5c], eax
call fcn.004dc882
lea ecx, [esp + 0x48]
push 5
push ecx
mov ecx, ebx
call fcn.00457390
cmp eax, ebp
mov dword [esp + 0x6c], eax
je 0x443589
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea eax, [ecx + 1]
imul eax, edx
lea ebp, [eax + eax*2 + 0xec]
mov dword [esp + 0x4c], ebp
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x4f4]
test ecx, ecx
jne 0x4435a2
xor edi, edi
jmp 0x4435a6
mov edi, dword [esp + 0x20]
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x614]
test ecx, ecx
je 0x4435e0
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
test eax, eax
jne 0x4435e0
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x644]
test ecx, ecx
jg 0x443617
cmp edi, 1
jne 0x4435f6
mov ecx, esi
call fcn.0043f100
cmp ebp, dword [eax + 0x4f8]
jle 0x443617
jmp 0x4435fa
test edi, edi
je 0x443617
inc edi
mov dword [esp + 0x20], edi
je 0x443617
jmp 0x442c1d
lea ecx, [esp + 0x18]
mov byte [esp + 0x117c], 0xb
call fcn.004dc882
push 0xffffffffffffffff
lea ecx, [esp + 0x4c]
call fcn.004dcd01
mov eax, dword [esp + 0x6c]
mov ecx, esi
test eax, eax
je 0x443cf1
call fcn.0043f100
mov ecx, dword [eax + 0x614]
test ecx, ecx
je 0x443990
push ebx
call fcn.004623f0
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
test eax, eax
jne 0x4438e3
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x644]
test ecx, ecx
jle 0x4438e3
mov ecx, esi
call fcn.0043f100
cmp edi, dword [eax + 0x644]
jg 0x443899
cmp dword [esp + 0x8c], 7
jg 0x4438be
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4436b1
mov ecx, eax
push 1
mov edx, dword [ecx]
call dword [edx + 4]
test ebx, ebx
je 0x4436be
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00459bb0
add esp, 4
mov ecx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], 0
call fcn.0043f100
mov edx, dword [eax + 0x618]
mov ebx, dword [esp + 0x84]
add edx, ebx
cmp edx, 0x10
jne 0x443762
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x658
call fcn.0041ec80
sub eax, dword [esp + 0x74]
jne 0x443762
mov ebx, dword [esp + 0x7c]
mov ecx, esi
add ebx, 0xa
mov dword [esp + 0x7c], ebx
call fcn.0043f100
mov ecx, eax
add ecx, 0x650
call fcn.0041ec80
add eax, ebx
cmp eax, 0x64
jl 0x4437da
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x650
call fcn.0041ec80
mov ecx, 0x64
mov dword [esp + 0x8c], 7
sub ecx, eax
mov dword [esp + 0x7c], ecx
jmp 0x4437da
mov ebp, dword [esp + 0x74]
add ebx, 5
add ebp, 0x19
mov ecx, esi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x74], ebp
call fcn.0043f100
mov eax, dword [eax + 0x618]
add eax, ebx
cmp eax, 0x10
jle 0x4437a6
mov ecx, esi
call fcn.0043f100
mov edx, dword [eax + 0x618]
mov ecx, 0x10
sub ecx, edx
mov dword [esp + 0x84], ecx
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x658
call fcn.0041ec80
sub eax, dword [esp + 0x74]
test eax, eax
jg 0x4437da
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x658
call fcn.0041ec80
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x8c]
mov ecx, dword [0x55f358]
inc edx
push edi
mov dword [esp + 0x90], edx
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov edi, dword [0x55f35c]
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x658
call fcn.0041ec80
mov ebp, dword [esp + 0x74]
mov ecx, esi
sub eax, ebp
push eax
call fcn.0043f100
mov ecx, eax
add ecx, 0x650
call fcn.0041ec80
mov ecx, dword [esp + 0x80]
add eax, ecx
mov ecx, esi
push eax
call fcn.0043f100
mov ecx, dword [eax + 0x618]
mov ebx, dword [esp + 0x8c]
add ecx, ebx
lea edx, [esp + 0x18]
push ecx
push edi
push edx
call fcn.004d5408
add esp, 0x10
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ebp, dword [esp + 0x14]
jmp 0x442912
mov ecx, dword [0x55f354]
push edi
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0xc4], esp
push eax
jmp 0x44391b
mov ecx, dword [0x55f358]
push edi
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0xc4], esp
push eax
jmp 0x44391b
test edi, edi
jle 0x44390c
mov ecx, dword [0x55f354]
push edi
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.004d5408
add esp, 8
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0xc4], esp
push eax
jmp 0x44391b
push ecx
mov ecx, esp
mov dword [esp + 0xc4], esp
push 0x55f360
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
test edi, edi
jle 0x443990
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x63c]
test ecx, ecx
je 0x443978
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x628]
cmp ecx, 1
mov ecx, esi
jne 0x44395c
call fcn.0043f100
add eax, 0x638
jmp 0x443976
call fcn.0043f100
cmp dword [eax + 0x628], 2
jne 0x443978
mov ecx, esi
call fcn.0043f100
add eax, 0x634
inc dword [eax]
mov edx, dword [esi + 0x11c]
mov eax, dword [esp + 0x38]
inc edx
mov dword [esi + 0x11c], edx
mov ecx, dword [eax + 0x18]
inc ecx
mov dword [eax + 0x18], ecx
mov eax, dword [esp + 0xb8]
cmp eax, 1
jne 0x4439b9
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
test eax, eax
je 0x443a02
jmp 0x443c0b
cmp eax, 2
jne 0x4439dc
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 1
je 0x443a02
jmp 0x443c0b
cmp eax, 4
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 2
jne 0x443c0b
cmp ebp, dword [esp + 0x90]
jle 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x544]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x614]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x534]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x574]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x5e4]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x534]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x504]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x520]
test ecx, ecx
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
test eax, eax
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x678
call fcn.0041ec80
test eax, eax
jne 0x443c0b
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x670
call fcn.0041ec80
test eax, eax
jne 0x443c0b
mov edi, dword [esp + 0x1184]
mov eax, dword [esp + 0x48]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x443b3a
test cl, cl
je 0x443b36
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x443b3a
add eax, 2
add edi, 2
test cl, cl
jne 0x443b16
xor eax, eax
jmp 0x443b3f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x443c0b
mov eax, dword [esp + 0x1184]
push 0x5510f8
push eax
call fcn.004c1b6b
mov edi, eax
add esp, 8
test edi, edi
je 0x443bd5
mov ecx, dword [esp + 0x48]
push 0x5515c4
push ecx
call fcn.004c1b6b
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x443bcc
push edi
push 0x1000
lea edx, [esp + 0x17c]
push 1
push edx
call fcn.004c2eb0
add esp, 0x10
test eax, eax
je 0x443bc3
push ebp
push 1
push eax
lea eax, [esp + 0x180]
push eax
call fcn.004c2d77
push edi
push 0x1000
lea ecx, [esp + 0x18c]
push 1
push ecx
call fcn.004c2eb0
add esp, 0x20
test eax, eax
jne 0x443b96
push ebp
call fcn.004c1b7e
add esp, 4
push edi
call fcn.004c1b7e
add esp, 4
mov edx, dword [0x55f588]
mov ebp, dword [esp + 0x90]
lea eax, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x54], ebp
call fcn.004d5408
add esp, 4
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, esi
call fcn.0043f100
mov ecx, dword [eax + 0x4f4]
test ecx, ecx
je 0x443c7d
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 3
je 0x443c7d
mov ecx, esi
call fcn.0043f100
cmp ebp, dword [eax + 0x4f8]
jle 0x443c7d
mov edi, dword [0x55f5a4]
mov ecx, esi
call fcn.0043f100
mov eax, dword [eax + 0x4f8]
lea ecx, [esp + 0x10]
push eax
push edi
push ecx
call fcn.004d5408
add esp, 8
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
fild dword [esp + 0x4c]
mov edi, dword [esp + 0x90]
mov eax, dword [0x55f364]
sub esp, 8
lea ecx, [esp + 0x18]
fstp qword [esp + 0x40]
fild dword [esp + 0x98]
fstp qword [esp + 0xc8]
fld qword [esp + 0x40]
fdiv qword [esp + 0xc8]
fmul qword [0x505558]
fstp qword [esp]
push ebp
push edi
push eax
push ecx
call fcn.004d5408
mov edx, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
mov eax, dword [esi + 0x114]
add esp, 0x18
add edx, edi
add ecx, ebp
inc eax
mov dword [esi + 0x10c], edx
mov dword [esi + 0x110], ecx
mov dword [esi + 0x114], eax
jmp 0x443d63
call fcn.0043f100
mov ecx, dword [eax + 0x4ec]
test ecx, ecx
jne case.default.0x443d19
mov ecx, esi
call fcn.0043f100
mov ecx, eax
add ecx, 0x648
call fcn.0041ec80
cmp eax, 3
ja case.default.0x443d19
jmp dword [eax*4 + 0x444060]
mov edx, dword [0x55f368]
push 0
push 0
jmp 0x443d4f
mov eax, dword [0x55f36c]
push 0
push 0
push eax
jmp 0x443d50
mov ecx, dword [0x55f370]
push 0
push 0
push ecx
jmp 0x443d50
mov edx, dword [0x55f374]
push 0
push 0
push edx
call fcn.004e3f9c
push 0x55f378
lea ecx, [esp + 0x14]
call fcn.004dc9bb
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004dc5f7
mov ecx, esi
call fcn.00444100
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x443d8a
mov edx, dword [ecx]
push 1
call dword [edx + 4]
test ebx, ebx
je 0x443d97
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x443da6
mov edx, dword [ecx]
push 1
call dword [edx + 4]
lea ecx, [esp + 0x48]
mov byte [esp + 0x117c], 0xa
call fcn.004dc882
lea ecx, [esp + 0x80]
mov byte [esp + 0x117c], 8
call fcn.004dc882
lea ecx, [esp + 0x30]
mov byte [esp + 0x117c], 6
call fcn.004dc882
mov dword [esp + 0xcc], vtable.CFileException.0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x117c], 0x29
call fcn.004dc882
lea ecx, [esp + 0xe0]
mov byte [esp + 0x117c], 2
call fcn.004dd3c8
lea ecx, [esp + 0x70]
mov byte [esp + 0x117c], 1
call fcn.004dc882
lea ecx, [esp + 0x10]
mov byte [esp + 0x117c], 0
call fcn.004dc882
lea ecx, [esp + 0x1184]
mov dword [esp + 0x117c], 0xffffffff
call fcn.004dc882
mov eax, dword [esp + 0x6c]
jmp 0x444012
mov eax, dword [0x55a6f0]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb8]
mov bl, 0x14
cmp eax, 5
mov byte [esp + 0x117c], bl
ja case.0x443e73.3
jmp dword [eax*4 + 0x444070]
push str.JPEG:
jmp 0x443e9b
push str.GIF:
jmp 0x443e9b
push str.PNG:
jmp 0x443e9b
push str.BMP:
jmp 0x443e9b
push str.TIFF:
lea ecx, [esp + 0x30]
call fcn.004dca0b
lea eax, [esp + 0x38]
mov ecx, edi
push eax
call fcn.0040b270
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1180], 0x15
call fcn.004dcc9a
lea ecx, [esp + 0x38]
mov byte [esp + 0x117c], bl
call fcn.004dc882
push 0x55f1b8
lea ecx, [esp + 0x44]
call fcn.004dc9bb
lea ecx, [esp + 0x1184]
push ecx
lea ecx, [esp + 0x44]
call fcn.004dcc9a
push 0x551340
lea ecx, [esp + 0x44]
call fcn.004dcc5e
mov ecx, esi
call fcn.0043f100
cmp dword [eax + 0x4ec], ebp
jne 0x443f21
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
push 0x30
push edx
push eax
mov ecx, esi
call fcn.004da5c6
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x3c], esp
lea eax, [esp + 0x44]
push edx
push eax
push ecx
call fcn.004dcab1
mov ecx, esi
call fcn.00444100
cmp edi, ebp
je 0x443f4c
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
lea ecx, [esp + 0x40]
mov byte [esp + 0x117c], 0x13
call fcn.004dc882
lea ecx, [esp + 0x2c]
mov byte [esp + 0x117c], 0xb
call fcn.004dc882
lea ecx, [esp + 0x48]
mov byte [esp + 0x117c], 0xa
call fcn.004dc882
lea ecx, [esp + 0x80]
mov byte [esp + 0x117c], 8
call fcn.004dc882
lea ecx, [esp + 0x30]
mov byte [esp + 0x117c], 6
call fcn.004dc882
mov dword [esp + 0xcc], vtable.CFileException.0
mov byte [esp + 0x117c], 0x16
lea ecx, [esp + 0xdc]
call fcn.004dc882
lea ecx, [esp + 0xe0]
mov byte [esp + 0x117c], 2
call fcn.004dd3c8
lea ecx, [esp + 0x70]
mov byte [esp + 0x117c], 1
call fcn.004dc882
lea ecx, [esp + 0x10]
mov byte [esp + 0x117c], 0
call fcn.004dc882
mov dword [esp + 0x117c], 0xffffffff
lea ecx, [esp + 0x1184]
call fcn.004dc882
xor eax, eax
mov ecx, dword [esp + 0x1174]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1170
ret 4