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

Disassembly:
sub esp, 0xe0
mov dword [esp + 8], ecx
push ebx
push esi
cmp edx, 3
mov byte [esp + 0x3c], 0
mov byte [esp + 0xb], 1
push edi
push ebp
jg 0x41c3b6
test edx, edx
jge 0x41c3bb
mov byte [esp + 0x44], 1
mov edx, 3
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x18]
mov ebx, dword [edi + esi*8 + 0x64]
mov ecx, dword [edi + esi*4]
lea eax, [edi + esi*8 + 0x60]
lea ebp, [edi + esi*8 + 0x70]
mov dword [esp + 0x3c], ecx
nop
mov ecx, dword [eax]
mov eax, dword [ebp]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], eax
mov ecx, dword [ebp + 4]
mov dword [esp + 0x94], ebx
mov eax, dword [edi + esi*8 + 0x80]
lea ebx, [edi + esi*8 + 0x80]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov ecx, dword [ebx + 4]
lea eax, [edi + esi*8 + 0x90]
mov dword [esp + 0xa4], ecx
nop
mov edi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 8]
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], edi
mov edi, dword [ecx + 0x18]
cmp edi, 0x4d2
mov edi, dword [esp + 0x3c]
setl cl
mov byte [esp + 0x12], cl
lea ecx, [edi + esi*8 + 0x60]
mov edi, dword [edi + esi*8 + 0x60]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x3c]
mov edi, dword [ecx + 0xc]
xor ecx, ecx
mov cl, byte [edi + 0x3c]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x41c4b1
mov ecx, dword [ebp]
mov ebx, dword [ebx]
mov eax, dword [eax]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], eax
mov eax, dword [ecx + esi*8 + 0x64]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], eax
jmp 0x41c62f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x3c]
cmp eax, 1
mov ebx, dword [ecx + esi*8 + 0x70]
lea eax, [ecx + esi*8 + 0x70]
mov dword [esp + 0x68], ebx
nop
mov ecx, dword [eax + 4]
mov ebx, dword [ebp + esi*8 + 0x80]
lea eax, [ebp + esi*8 + 0x80]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
mov ecx, dword [eax + 4]
mov dword [esp + 0x74], ecx
jne 0x41c4fc
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ecx
jmp 0x41c62f
mov ebx, dword [ebp + esi*8 + 0x90]
mov ecx, dword [ebp + esi*8 + 0x94]
lea eax, [ebp + esi*8 + 0x90]
mov dword [esp + 0x78], ebx
mov al, byte [esp + 0x44]
mov dword [esp + 0x7c], ecx
test al, al
je 0x41c62f
test esi, esi
jne 0x41c5ad
mov eax, dword [esp + 0xa8]
test eax, eax
jg 0x41c544
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x41c62f
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa8]
add eax, eax
sub eax, ecx
test eax, eax
jg 0x41c57a
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
add eax, eax
sub eax, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle 0x41c623
mov dword [esp + 0x80], 0
jmp 0x41c62e
mov ecx, dword [0x46667c]
mov eax, dword [esp + 0xa8]
shl ecx, 0x10
cmp eax, ecx
jl 0x41c5c9
mov eax, dword [esp + 0x78]
cmp eax, ecx
jge 0x41c62f
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0xa8]
add eax, eax
sub eax, ebx
cmp ecx, eax
jg 0x41c5fb
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
add eax, eax
sub eax, ebx
mov dword [esp + 0x14], eax
cmp ecx, eax
jle 0x41c623
mov dword [esp + 0x80], ecx
jmp 0x41c62e
mov edi, dword [esp + 0x14]
mov dword [esp + 0x80], edi
inc edx
dec edx
mov dword [esp + 0x4c], edx
js 0x41cf50
lea edx, [esi + edx*2]
mov eax, dword [esp + 0x4c]
shl edx, 2
shl eax, 3
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
test esi, esi
mov ecx, dword [esp + eax + 0x60]
mov edx, dword [esp + eax + 0x64]
lea eax, [esp + eax + 0x60]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
lea eax, [esp + ecx + 0x68]
mov dword [esp + 0x20], edx
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
nop
mov ecx, dword [esp + eax + 0x9c]
mov edx, dword [esp + eax + 0x98]
lea eax, [esp + eax + 0x98]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + eax + 0x90]
mov ecx, dword [esp + eax + 0x94]
lea eax, [esp + eax + 0x90]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
jne 0x41c70f
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x41c6f2
mov eax, dword [esp + 0x34]
test eax, eax
jl 0x41cf29
mov eax, dword [0x46667c]
mov ecx, dword [esp + 0x24]
shl eax, 0x10
cmp eax, ecx
jge 0x41c73f
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jge 0x41c73f
jmp 0x41cf29
mov eax, dword [0x46667c]
mov ecx, dword [esp + 0x1c]
shl eax, 0x10
cmp eax, ecx
jge 0x41c72b
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jl 0x41cf29
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x41c73f
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x41cf29
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
cmp esi, 1
jne 0x41c7c9
sub edx, eax
mov ecx, dword [esp + 0x34]
sar edx, 0xc
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov ebx, dword [esp + 0x38]
sar eax, 0xc
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
sub eax, ebx
sub ecx, ebp
sar eax, 0xc
sar ecx, 0xc
imul eax, ecx
cmp edx, eax
jl 0x41c841
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub edx, eax
mov ecx, dword [esp + 0x24]
sar edx, 0xc
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov ebx, dword [esp + 0x28]
sar eax, 0xc
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
sub eax, ebx
sub ecx, ebp
sar eax, 0xc
sar ecx, 0xc
imul eax, ecx
cmp edx, eax
jg 0x41c841
jmp 0x41cf29
sub edx, eax
mov ecx, dword [esp + 0x34]
sar edx, 0xc
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov ebx, dword [esp + 0x38]
sar eax, 0xc
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
sub eax, ebx
sub ecx, ebp
sar eax, 0xc
sar ecx, 0xc
imul eax, ecx
cmp edx, eax
jg 0x41c841
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub edx, eax
mov ecx, dword [esp + 0x24]
sar edx, 0xc
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov ebx, dword [esp + 0x28]
sar eax, 0xc
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
sub eax, ebx
sub ecx, ebp
sar eax, 0xc
sar ecx, 0xc
imul eax, ecx
cmp edx, eax
jge 0x41cf29
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
cmp ecx, eax
jg 0x41c869
mov eax, dword [esp + 0x28]
cmp ecx, eax
jg 0x41c869
mov eax, dword [esp + 0x30]
cmp ecx, eax
jg 0x41c869
mov eax, dword [esp + 0x38]
cmp ecx, eax
jle 0x41cf29
mov al, byte [esp + 0x12]
test al, al
je 0x41cb03
mov eax, dword [esp + 0x40]
cmp eax, 0x18
jge 0x41cb03
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x18]
mov ecx, 1
cmp eax, 0x3d2
jge 0x41c8a2
xor ecx, ecx
cmp eax, 0x1d2
setl cl
add ecx, 2
mov eax, 1
add cl, 0x10
shl eax, cl
mov ecx, dword [esp + 0x4c]
push eax
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, esi
call fcn.0041d060
test eax, eax
jne 0x41c8f3
mov ecx, dword [0x4b7e74]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
nop
lea edx, [esi + edi*2]
mov eax, dword [ebx + 0xc]
mov ebp, dword [eax + edx*4 + 0x120]
lea edx, [esp + 0x1c]
mov dword [ecx + 0x30], ebp
call fcn.00450580
jmp 0x41cf29
mov cl, byte [esp + 0x13]
test cl, cl
je 0x41ca24
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
mov edx, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov byte [esp + 0x13], 0
mov ecx, dword [edx + esi*4 + 0xe8]
add ecx, edi
mov dword [0x4c5d00], ecx
mov ecx, dword [edx + esi*8 + 0xf0]
add ecx, edi
mov dword [0x4c5d08], ecx
mov ecx, dword [edx + esi*8 + 0x100]
add ecx, edi
mov dword [0x4c5d10], ecx
mov ecx, dword [edx + esi*8 + 0x110]
add ecx, edi
mov edi, dword [esp + 0x18]
mov dword [0x4c5d18], ecx
mov edi, dword [edi + 0x14]
mov dword [0x4c5d04], edi
mov ecx, dword [edx + esi*8 + 0xf4]
add ecx, edi
mov dword [0x4c5d0c], ecx
mov ecx, dword [edx + esi*8 + 0x104]
add ecx, edi
mov dword [0x4c5d14], ecx
mov ecx, dword [edx + esi*8 + 0x114]
add ecx, edi
mov dword [0x4c5d1c], ecx
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edx + esi*4 + 0xe8]
add ecx, edi
mov dword [0x4c5ce0], ecx
mov ecx, dword [edx + esi*8 + 0xf0]
add ecx, edi
mov dword [0x4c5ce8], ecx
mov ecx, dword [edx + esi*8 + 0x100]
add ecx, edi
mov dword [0x4c5cf0], ecx
mov ecx, dword [edx + esi*8 + 0x110]
add ecx, edi
mov dword [0x4c5cf8], ecx
mov edi, dword [ebx + 0x14]
mov dword [esp + 0x14], edi
mov dword [0x4c5ce4], edi
mov ecx, dword [edx + esi*8 + 0xf4]
add ecx, edi
mov dword [0x4c5cec], ecx
mov ecx, dword [edx + esi*8 + 0x104]
add ecx, edi
mov dword [0x4c5cf4], ecx
mov ecx, dword [edx + esi*8 + 0x114]
add ecx, edi
mov edx, dword [esp + 0x50]
mov dword [0x4c5cfc], ecx
mov dword [esp + 0xc0], edx
mov ecx, dword [ebx + 0x18]
lea edx, [esp + 0x1c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
add ecx, 0x4c5ce0
mov dword [esp + 0xe4], eax
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc4], edx
add ecx, 0x4c5ce8
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xec], 0
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xcc], edx
add ecx, 0x4c5d08
mov dword [esp + 0xd0], ebx
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xd4], edx
add ecx, 0x4c5d00
mov dword [esp + 0xd8], ebx
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
xor ecx, ecx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], ebx
cmp ebp, 2
setg cl
xor edx, edx
cmp esi, 1
sete dl
cmp ecx, edx
mov ecx, dword [eax]
je 0x41cacf
and ecx, 0xfffcffff
or ecx, 0x40000
jmp 0x41cadb
and ecx, 0xfffaffff
or ecx, 0x20000
mov edi, dword [esp + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [edi + 0xc]
mov ebx, dword [edx + ecx + 0x120]
lea ecx, [esp + 0xb8]
mov dword [eax + 0x30], ebx
call fcn.0044bd40
jmp 0x41cf29
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jle 0x41cb5c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], 2
jmp 0x41cb64
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], edi
mov al, byte [0x468960]
test al, al
je 0x41cebf
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
sub edx, eax
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
test edx, edx
jle 0x41cba2
test ecx, ecx
jle 0x41cb97
xor eax, eax
cmp ecx, edx
setg al
add eax, 2
jmp 0x41cbbe
neg ecx
xor eax, eax
cmp ecx, edx
setle al
jmp 0x41cbbe
test ecx, ecx
jle 0x41cbb4
neg edx
xor eax, eax
cmp edx, ecx
setge al
add eax, 4
jmp 0x41cbbe
xor eax, eax
cmp ecx, edx
setl al
add eax, 6
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub edi, ecx
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
test edi, edi
jle 0x41cbef
test edx, edx
jle 0x41cbe4
xor ecx, ecx
cmp edx, edi
setg cl
add ecx, 2
jmp 0x41cc0b
neg edx
xor ecx, ecx
cmp edx, edi
setle cl
jmp 0x41cc0b
test edx, edx
jle 0x41cc01
neg edi
xor ecx, ecx
cmp edi, edx
setge cl
add ecx, 4
jmp 0x41cc0b
xor ecx, ecx
cmp edx, edi
setl cl
add ecx, 6
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
sub ebx, edx
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0x30]
test ebx, ebx
jle 0x41cc3c
test edi, edi
jle 0x41cc31
xor edx, edx
cmp edi, ebx
setg dl
add edx, 2
jmp 0x41cc58
neg edi
xor edx, edx
cmp edi, ebx
setle dl
jmp 0x41cc58
test edi, edi
jle 0x41cc4e
neg ebx
xor edx, edx
cmp ebx, edi
setge dl
add edx, 4
jmp 0x41cc58
xor edx, edx
cmp edi, ebx
setl dl
add edx, 6
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
sub edi, ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x20]
sub edi, ebp
mov ebx, dword [esp + 0x44]
test ebx, ebx
jle 0x41cc9b
test edi, edi
jle 0x41cc8c
xor ebx, ebx
mov ebp, dword [esp + 0x44]
cmp edi, ebp
setg bl
add ebx, 2
jmp 0x41ccbf
xor ebx, ebx
mov ebp, dword [esp + 0x44]
neg edi
cmp edi, ebp
setle bl
jmp 0x41ccbf
test edi, edi
jle 0x41ccb1
mov ebp, dword [esp + 0x44]
xor ebx, ebx
neg ebp
cmp ebp, edi
setge bl
add ebx, 4
jmp 0x41ccbf
xor ebx, ebx
mov ebp, dword [esp + 0x44]
cmp edi, ebp
setl bl
add ebx, 6
mov edi, dword [esp + 0x58]
mov ebp, edi
xor ebp, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x58], ebp
cmp edi, 2
setg byte [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov edi, ebp
xor edi, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x54], edi
cmp esi, 1
sete byte [esp + 0x54]
cmp ebp, dword [esp + 0x54]
lea edi, [ebx + 4]
je 0x41cde0
and edi, 7
cmp eax, edi
je 0x41cd2d
jg 0x41cd0f
add edi, eax
add edi, 8
and edi, 0xf
jmp 0x41cd11
add edi, eax
mov ebp, dword [edi*8 + 0x4688e0]
mov edi, dword [edi*8 + 0x4688e4]
add dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x20]
add ebp, edi
mov dword [esp + 0x20], ebp
add eax, 4
and eax, 7
cmp ecx, eax
je 0x41cd67
jg 0x41cd43
add eax, ecx
add eax, 8
and eax, 0xf
jmp 0x41cd45
add eax, ecx
mov edi, dword [eax*8 + 0x4688e0]
mov ebp, dword [esp + 0x24]
add ebp, edi
mov eax, dword [eax*8 + 0x4688e4]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x28]
add ebp, eax
mov dword [esp + 0x28], ebp
add ecx, 4
and ecx, 7
cmp ecx, edx
je 0x41cda1
lea eax, [edx + ecx]
jl 0x41cd7f
lea eax, [edx + ecx]
add eax, 8
and eax, 0xf
mov ecx, dword [eax*8 + 0x4688e0]
mov ebp, dword [esp + 0x2c]
add ebp, ecx
mov eax, dword [eax*8 + 0x4688e4]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], ebp
add edi, eax
mov dword [esp + 0x30], edi
add edx, 4
and edx, 7
cmp edx, ebx
je 0x41cebf
lea eax, [ebx + edx]
jl 0x41cdbd
lea eax, [ebx + edx]
add eax, 8
and eax, 0xf
mov ecx, dword [eax*8 + 0x4688e0]
mov edx, dword [esp + 0x34]
add edx, ecx
mov eax, dword [eax*8 + 0x4688e4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
add ebx, eax
jmp 0x41cebb
and edi, 7
cmp eax, edi
je 0x41ce11
jl 0x41cdf3
add edi, eax
add edi, 8
and edi, 0xf
jmp 0x41cdf5
add edi, eax
mov ebp, dword [edi*8 + 0x4688e0]
mov edi, dword [edi*8 + 0x4688e4]
add dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x20]
add ebp, edi
mov dword [esp + 0x20], ebp
add eax, 4
and eax, 7
cmp ecx, eax
je 0x41ce4b
jl 0x41ce27
add eax, ecx
add eax, 8
and eax, 0xf
jmp 0x41ce29
add eax, ecx
mov edi, dword [eax*8 + 0x4688e0]
mov ebp, dword [esp + 0x24]
add ebp, edi
mov eax, dword [eax*8 + 0x4688e4]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x28]
add ebp, eax
mov dword [esp + 0x28], ebp
add ecx, 4
and ecx, 7
cmp ecx, edx
je 0x41ce85
jg 0x41ce61
add ecx, edx
add ecx, 8
and ecx, 0xf
jmp 0x41ce63
add ecx, edx
mov eax, dword [ecx*8 + 0x4688e0]
mov ebp, dword [esp + 0x2c]
add ebp, eax
mov ecx, dword [ecx*8 + 0x4688e4]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], ebp
add edi, ecx
mov dword [esp + 0x30], edi
add edx, 4
and edx, 7
cmp edx, ebx
je 0x41cebf
jg 0x41ce9b
add edx, ebx
add edx, 8
and edx, 0xf
jmp 0x41ce9d
add edx, ebx
mov eax, dword [edx*8 + 0x4688e0]
mov ecx, dword [esp + 0x34]
add ecx, eax
mov edx, dword [edx*8 + 0x4688e4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
add ebx, edx
mov dword [esp + 0x38], ebx
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push edi
mov edx, esi
mov ecx, dword [esp + 0x1c]
push eax
call fcn.0041cf60
mov ebx, dword [esp + 0x18]
mov ecx, eax
lea edx, [esi + edi*2]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + edx*4 + 0x120]
mov dword [ecx + 0x30], edx
lea edx, [esp + 0x1c]
call fcn.00450580
xor edx, edx
mov ecx, dword [esp + 0x4c]
cmp ecx, 2
setg dl
xor ecx, ecx
cmp esi, 1
sete cl
cmp edx, ecx
mov ecx, dword [eax]
je 0x41cf1b
and ecx, 0xfffcffff
or ecx, 0x40000
jmp 0x41cf27
and ecx, 0xfffaffff
or ecx, 0x20000
mov dword [eax], ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
sub eax, 8
sub ecx, 8
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
dec edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edx
test ecx, ecx
jge 0x41c64f
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe0
ret 4