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

Disassembly:
mov ecx, dword [0x4cfa00]
sub esp, 0x6c
mov eax, dword [ecx + 0x10]
push ebx
push ebp
push esi
cmp eax, 0xffffffff
push edi
jne 0x40de9c
mov edi, dword [ecx + 0x15a]
cmp edi, 5
ja case.default.0x40cc54
jmp dword [edi*4 + 0x40e3e8]
mov dword [esp + 0x24], 0x433240
jmp case.default.0x40cc54
mov dword [esp + 0x24], 0x425a60
jmp case.default.0x40cc54
mov dword [esp + 0x24], 0x445740
jmp case.default.0x40cc54
mov eax, dword [ecx + 0x156]
imul eax, eax, 0xe03f
add eax, 0x4d1d80
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x24]
mov eax, dword [ecx + 0x2c]
shl eax, 4
mov edx, dword [ebx + 0x114]
mov esi, dword [ebx + 0x118]
lea edx, [eax + edx - 0x10]
xor eax, eax
mov dword [esp + 0x20], edx
mov ax, word [edx + 3]
mov edx, eax
and edx, 0x1fff
lea edx, [edx + edx*4]
lea esi, [esi + edx*4]
mov dword [esp + 0x18], esi
cmp dword [esi], 0
je case.0x40df34.9
mov ebp, dword [esi + 4]
mov edx, dword [esi + 8]
shr eax, 0xe
and eax, 1
cmp edi, 1
mov dword [esp + 0x68], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
jle 0x40ccf2
add ebx, 0x11c
jmp 0x40cd15
mov eax, dword [ebx + 0xe00b]
test eax, eax
jge 0x40cd04
add ebx, 0x11c
jmp 0x40cd15
mov edx, eax
shl edx, 5
add edx, eax
shl edx, 5
lea ebx, [edx + ebx + 0x11c]
mov al, byte [ecx + 0x151]
mov dword [esp + 0x38], ebx
test al, al
je 0x40d500
and eax, 0xff
mov edi, eax
shl edi, 4
add edi, eax
lea edi, [edi + edi*2]
shl edi, 1
sub edi, eax
shl edi, 4
mov dword [esp + 0x2c], edi
mov eax, dword [edi + 0x447938]
mov dl, byte [eax + 4]
test dl, dl
je 0x40d500
mov edx, dword [ecx + 0x54]
mov eax, dword [edi + 0x447938]
mov dword [esp + 0x78], edx
xor edx, edx
mov dl, byte [eax + 5]
mov ebx, 0x64
mov dword [ecx + 0x54], edx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x50], edx
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x54], edx
mov edx, dword [ecx + 0x50]
mov dword [esp + 0x58], edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [edi + 0x447934]
mov esi, edx
mov dword [esp + 0x64], 0
sub eax, esi
mov dword [esp + 0x48], 0
add eax, 0x64
cdq
idiv ebx
test esi, esi
mov dword [esp + 0x30], edx
jle 0x40d4d5
mov ebx, dword [esp + 0x78]
mov eax, edx
shl eax, 4
mov esi, dword [eax + edi + 0x44794c]
lea eax, [eax + edi + 0x447930]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov eax, dword [eax + 0x18]
and eax, 3
test esi, esi
mov dword [esp + 0x34], eax
je 0x40d4a6
xor eax, eax
mov ax, word [esi + 3]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x6c], eax
and eax, 0x1fff
mov esi, dword [esi + 0x118]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov dword [esp + 0x40], esi
mov eax, dword [esi]
test eax, eax
je 0x40d4a2
mov edx, dword [esi + 4]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x70], edx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x40ce61
cmp esi, dword [esp + 0x64]
je 0x40ce48
push edx
push eax
mov eax, dword [0x425a44]
push eax
call fcn.004140c0
mov ecx, dword [0x4cfa00]
add esp, 0xc
test byte [esi + 0xc], 1
je 0x40ce55
mov eax, dword [0x425a44]
jmp 0x40ce6d
mov edx, dword [0x425a44]
mov dword [esp + 0x14], edx
jmp 0x40ce7a
mov dl, byte [esi + 0xc]
mov dword [esp + 0x14], eax
test dl, 1
je 0x40ce7a
mov dword [esp + 0x38], eax
add eax, 0x400
mov dword [esp + 0x14], eax
mov edi, dword [edi + 0x447938]
xor eax, eax
mov al, byte [edi + 6]
cmp eax, 4
ja case.default.0x40ce8e
jmp dword [eax*4 + 0x40e400]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [ecx + 0x48], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 0x4c], eax
jmp 0x40d049
test byte [0x4456fc], 1
je case.0x40ce8e.2
movsx eax, byte [edi + 7]
movsx edx, byte [edi + 8]
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x48], edx
movsx eax, byte [edi + 9]
movsx edx, byte [edi + 0xa]
mov dword [ecx + 0x4c], eax
jmp 0x40d049
xor eax, eax
mov edx, dword [esp + 0x2c]
mov al, byte [edi + 4]
mov esi, eax
imul eax, dword [esp + 0x48]
mov ebp, dword [edx + 0x44793c]
xor edx, edx
mov dl, byte [edi + 3]
add eax, ebp
imul eax, eax, 0x64
mov ebp, edx
imul ebp, esi
cdq
idiv ebp
mov ebp, 0x64
mov esi, eax
movsx eax, byte [edi + 7]
sub ebp, esi
imul eax, ebp
mov dword [esp + 0x64], eax
mov eax, esi
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, byte [edi + 8]
imul eax, ebp
mov dword [esp + 0x64], eax
mov eax, esi
imul eax, dword [esp + 0x50]
mov dword [ecx + 0x44], edx
mov edx, dword [esp + 0x64]
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, byte [edi + 9]
imul eax, ebp
mov dword [esp + 0x64], eax
mov eax, esi
imul eax, dword [esp + 0x54]
mov dword [ecx + 0x48], edx
mov edx, dword [esp + 0x64]
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ecx + 0x4c], edx
movsx edx, byte [edi + 0xa]
imul edx, ebp
jmp 0x40d031
call fcn.00417a22
cdq
mov ecx, 0x64
idiv ecx
mov esi, ecx
mov edi, edx
mov edx, dword [esp + 0x2c]
sub esi, edi
mov ebp, dword [edx + 0x447938]
mov eax, esi
imul eax, dword [esp + 0x4c]
movsx ecx, byte [ebp + 7]
imul ecx, edi
add ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
mov eax, esi
shr ecx, 0x1f
imul eax, dword [esp + 0x50]
add edx, ecx
mov ecx, dword [0x4cfa00]
mov dword [ecx + 0x44], edx
movsx edx, byte [ebp + 8]
imul edx, edi
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
imul eax, dword [esp + 0x54]
mov dword [ecx + 0x48], edx
movsx edx, byte [ebp + 9]
imul edx, edi
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ecx + 0x4c], edx
movsx edx, byte [ebp + 0xa]
imul edx, edi
imul esi, dword [esp + 0x58]
add edx, esi
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ecx + 0x50], edx
mov ebp, dword [esp + 0x38]
mov edi, 0x4d1a20
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], 0x100
mov edx, dword [ebp]
test edx, 0xffffff
je 0x40d10c
mov esi, dword [ecx + 0x44]
mov eax, edx
shr eax, 0x10
and eax, 0xff
shr eax, 3
add eax, esi
cmp eax, 0x1f
jle 0x40d08e
mov eax, 0x1f
jmp 0x40d094
test eax, eax
jge 0x40d094
xor eax, eax
mov esi, dword [ecx + 0x48]
shr edx, 8
and edx, 0xff
shr edx, 3
add edx, esi
mov esi, edx
cmp esi, 0x1f
jle 0x40d0b3
mov esi, 0x1f
jmp 0x40d0b9
test esi, esi
jge 0x40d0b9
xor esi, esi
xor edx, edx
mov dl, byte [ebp]
mov ebp, dword [ecx + 0x4c]
shr edx, 3
add edx, ebp
cmp edx, 0x1f
jle 0x40d0d2
mov edx, 0x1f
jmp 0x40d0d8
test edx, edx
jge 0x40d0d8
xor edx, edx
lea ebp, [edx + esi]
add ebp, eax
jne 0x40d0e4
mov edx, 1
mov ebp, dword [0x424704]
test ebp, ebp
je 0x40d0fd
shl eax, 5
add eax, esi
shl eax, 6
add eax, edx
mov word [edi], ax
jmp 0x40d111
shl eax, 5
add eax, esi
shl eax, 5
add eax, edx
mov word [edi], ax
jmp 0x40d111
mov word [edi], 0
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
add edi, 2
add ebp, 4
dec eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], eax
jne 0x40d061
mov eax, dword [ecx + 0x15a]
cmp eax, 5
ja case.default.0x40d13d
jmp dword [eax*4 + 0x40e414]
mov ebp, dword [esp + 0x5c]
test byte [ebp + 0x18], 4
je 0x40d195
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
inc edx
mov edi, dword [esp + 0x40]
shl edx, 4
mov esi, dword [edi + 4]
mov eax, dword [edx + eax + 0x447930]
cdq
and edx, 0xffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x3c]
sar ebx, 0x10
movsx edx, word [eax + 5]
sub ebx, edx
mov edx, esi
shr edx, 1
add ebx, edx
mov edx, dword [esp + 0x34]
sub ebx, esi
xor edx, 1
mov dword [esp + 0x34], edx
jmp 0x40d1cb
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
inc eax
mov edi, dword [esp + 0x40]
shl eax, 4
mov eax, dword [eax + edx + 0x447930]
cdq
and edx, 0xffff
add eax, edx
mov ebx, eax
mov eax, dword [edi + 4]
sar ebx, 0x10
shr eax, 1
sub ebx, eax
mov eax, dword [esp + 0x3c]
movsx edx, word [eax + 5]
add ebx, edx
movsx esi, word [eax + 7]
mov eax, dword [ebp + 0x14]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [edi + 8]
sar eax, 0x10
add esi, eax
mov eax, dword [ecx + 0x28]
sub esi, edx
test eax, 0x40000000
je 0x40d43d
mov ecx, dword [0x447f2c]
mov eax, dword [0x447f30]
sub ebx, ecx
mov ecx, dword [0x447dad]
sub esi, eax
mov eax, dword [0x447dc1]
add ebx, ecx
add esi, eax
mov dword [esp + 0x44], esi
jmp 0x40d456
mov esi, dword [esp + 0x5c]
test byte [esi + 0x18], 4
mov eax, dword [esp + 0x30]
je 0x40d265
mov edx, dword [esp + 0x2c]
inc eax
shl eax, 4
mov edi, dword [esp + 0x3c]
mov eax, dword [eax + edx + 0x447930]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [esp + 0x40]
mov ebx, eax
movsx eax, word [edi + 5]
mov ebp, dword [edx + 4]
sar ebx, 0x10
sub ebx, eax
mov eax, dword [esp + 0x34]
sub ebx, ebp
xor eax, 1
mov dword [esp + 0x34], eax
jmp 0x40d28c
mov edx, dword [esp + 0x2c]
inc eax
shl eax, 4
mov edi, dword [esp + 0x3c]
mov eax, dword [eax + edx + 0x447930]
cdq
and edx, 0xffff
add eax, edx
mov ebx, eax
movsx eax, word [edi + 5]
sar ebx, 0x10
add ebx, eax
mov eax, dword [esi + 0x14]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [edi + 7]
mov esi, eax
mov eax, dword [ecx + 0x28]
sar esi, 0x10
add esi, edx
test eax, 0x40000000
mov eax, dword [0x447f2c]
je 0x40d2bc
mov edx, dword [0x447f30]
sub ebx, eax
sub esi, edx
mov edi, dword [0x447dad]
mov edx, dword [0x447dc1]
add ebx, edi
mov edi, dword [ecx + 0x68]
mov ecx, dword [esp + 0x24]
add esi, edx
shl edi, 4
mov edx, dword [ecx + 0x114]
mov dword [esp + 0x44], esi
mov cl, byte [edi + edx + 1]
add edi, edx
test cl, 8
je 0x40d330
mov bp, word [edi + 2]
movsx ecx, bp
mov edx, ecx
imul edx, eax
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add ebx, edx
test bp, bp
jge 0x40d330
mov eax, ecx
cdq
mov ebp, eax
mov eax, 0x66666667
xor ebp, edx
sub ebp, edx
neg ebp
shl ebp, 6
imul ebp
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add ebx, edx
test byte [edi + 1], 0x10
je 0x40d456
mov di, word [edi + 4]
mov eax, 0xae147ae1
movsx ebp, di
mov ecx, ebp
imul ecx, dword [0x447f30]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
test di, di
mov dword [esp + 0x44], esi
jge 0x40d456
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
lea ecx, [eax*4]
sub ecx, eax
mov eax, 0x66666667
neg ecx
shl ecx, 4
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add esi, edx
mov dword [esp + 0x44], esi
jmp 0x40d456
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
test byte [esi + 0x18], 4
je 0x40d3e6
mov eax, dword [esp + 0x2c]
inc edx
shl edx, 4
mov edi, dword [esp + 0x3c]
mov eax, dword [edx + eax + 0x447930]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [edi + 5]
mov ebx, eax
mov eax, dword [esp + 0x40]
sar ebx, 0x10
sub ebx, edx
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x34]
sub ebx, edx
xor eax, 1
mov dword [esp + 0x34], eax
jmp 0x40d40d
mov eax, dword [esp + 0x2c]
inc edx
shl edx, 4
mov edi, dword [esp + 0x3c]
mov eax, dword [edx + eax + 0x447930]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [edi + 5]
mov ebx, eax
sar ebx, 0x10
add ebx, edx
mov eax, dword [esi + 0x14]
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movsx eax, word [edi + 7]
sar esi, 0x10
add esi, eax
mov eax, dword [ecx + 0x28]
test eax, 0x40000000
je 0x40d43d
mov ecx, dword [0x447f2c]
mov eax, dword [0x447f30]
sub ebx, ecx
sub esi, eax
mov ecx, dword [0x447dad]
mov eax, dword [0x447dc1]
add ebx, ecx
add esi, eax
mov dword [esp + 0x44], esi
jmp 0x40d456
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
and eax, 0xc000
add eax, ebp
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push esi
push ebx
push 0x4d1a20
push eax
push ecx
call fcn.0040c140
mov ecx, dword [0x4cfa00]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x60]
add esp, 0x20
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x48]
mov esi, 0x64
inc eax
mov dword [esp + 0x48], eax
lea eax, [edx + 1]
cdq
idiv esi
mov esi, dword [edi + 0x447938]
xor eax, eax
mov al, byte [esi + 3]
mov esi, dword [esp + 0x48]
cmp esi, eax
mov dword [esp + 0x30], edx
jl 0x40cdbd
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
mov dword [ecx + 0x54], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [ecx + 0x48], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x50], edx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x40d54b
mov ecx, dword [0x425a44]
push eax
mov eax, dword [esi]
push eax
push ecx
call fcn.004140c0
mov al, byte [esi + 0xc]
add esp, 0xc
test al, 1
je 0x40d539
mov eax, dword [0x425a44]
mov ecx, dword [0x4cfa00]
mov ebx, eax
add eax, 0x400
mov dword [esp + 0x14], eax
jmp 0x40d564
mov edx, dword [0x425a44]
mov ecx, dword [0x4cfa00]
mov dword [esp + 0x14], edx
jmp 0x40d564
mov dl, byte [esi + 0xc]
mov eax, dword [esi]
test dl, 1
mov dword [esp + 0x14], eax
je 0x40d564
mov ebx, eax
add eax, 0x400
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x15a]
cmp eax, 5
ja case.0x40d56f.3
jmp dword [eax*4 + 0x40e42c]
mov eax, dword [ecx + 0x156]
imul eax, eax, 0xe03f
add eax, 0x4dfd93
push eax
jmp 0x40d596
push 0x4456d0
jmp 0x40d596
push 0x447d7d
call fcn.0040ca90
mov ecx, dword [0x4cfa00]
add esp, 4
mov dword [esp + 0x58], ebx
mov ebx, 0x4d1a20
mov dword [esp + 0x64], 0x100
mov edx, dword [esp + 0x58]
mov edx, dword [edx]
test edx, 0xffffff
je 0x40d668
mov edi, dword [ecx + 0x44]
mov eax, edx
shr eax, 0x10
and eax, 0xff
shr eax, 3
add eax, edi
cmp eax, 0x1f
jle 0x40d5e5
mov eax, 0x1f
jmp 0x40d5eb
test eax, eax
jge 0x40d5eb
xor eax, eax
mov esi, dword [ecx + 0x48]
shr edx, 8
and edx, 0xff
shr edx, 3
add edx, esi
mov edi, edx
cmp edi, 0x1f
jle 0x40d60a
mov edi, 0x1f
jmp 0x40d610
test edi, edi
jge 0x40d610
xor edi, edi
mov esi, dword [esp + 0x58]
xor edx, edx
mov dl, byte [esi]
mov esi, edx
mov edx, dword [ecx + 0x4c]
shr esi, 3
add esi, edx
cmp esi, 0x1f
jle 0x40d62e
mov esi, 0x1f
jmp 0x40d634
test esi, esi
jge 0x40d634
xor esi, esi
lea edx, [esi + edi]
add edx, eax
jne 0x40d640
mov esi, 1
mov edx, dword [0x424704]
test edx, edx
je 0x40d659
shl eax, 5
add eax, edi
shl eax, 6
add eax, esi
mov word [ebx], ax
jmp 0x40d66d
shl eax, 5
add eax, edi
shl eax, 5
add eax, esi
mov word [ebx], ax
jmp 0x40d66d
mov word [ebx], 0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x64]
add ebx, 2
add edx, 4
dec eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], eax
jne 0x40d5b5
mov eax, dword [ecx + 0x15a]
cmp eax, 5
ja case.0x40df34.9
jmp dword [eax*4 + 0x40e444]
cmp dword [ecx + 0x40], 0xffffffff
jne 0x40d7b0
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov edx, dword [eax + 0xdef9]
mov di, word [ebx + 3]
test edi, 0x4000
mov eax, dword [edx + 0x5c]
mov dword [esp + 0x64], eax
je 0x40d6d2
xor eax, 1
mov dword [esp + 0x64], eax
test eax, eax
je 0x40d700
mov eax, dword [ecx + 8]
movsx esi, word [ebx + 5]
cdq
and edx, 0xffff
mov dword [esp + 0x78], esi
add eax, edx
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x78]
sar esi, 0x10
sub esi, eax
mov eax, dword [edx + 4]
sub esi, eax
jmp 0x40d717
mov eax, dword [ecx + 8]
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movsx eax, word [ebx + 5]
sar esi, 0x10
add esi, eax
test edi, 0x8000
je 0x40d73f
mov eax, dword [ecx + 0xc]
movsx ebx, word [ebx + 7]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [esp + 0x18]
sar eax, 0x10
sub eax, ebx
mov ebx, dword [edx + 8]
sub eax, ebx
jmp 0x40d754
mov eax, dword [ecx + 0xc]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [ebx + 7]
sar eax, 0x10
add eax, edx
test dword [ecx + 0x28], 0x40000000
je 0x40d76d
mov edx, dword [0x447f2c]
mov ecx, dword [0x447f30]
sub esi, edx
sub eax, ecx
mov ecx, dword [esp + 0x64]
mov edx, dword [0x447dc1]
and edi, 0xc000
add eax, edx
or edi, ecx
mov ecx, dword [esp + 0x28]
push edi
push ecx
push ebp
push eax
mov eax, dword [0x447dad]
add esi, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push esi
push 0x4d1a20
push ecx
push edx
call fcn.0040c140
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x5c]
mov ebx, dword [esp + 0x20]
test eax, eax
je 0x40d7f2
test byte [ebx + 9], 1
jne 0x40d7f2
mov ebp, dword [esp + 0x18]
movsx eax, word [ebx + 5]
mov edi, dword [ebp + 4]
mov esi, edi
shr esi, 1
sub esi, eax
mov eax, dword [ecx + 8]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
add esi, eax
mov eax, dword [esp + 0x1c]
sub esi, edi
xor eax, 1
mov dword [esp + 0x1c], eax
jmp 0x40d812
mov ebp, dword [esp + 0x18]
mov eax, dword [ecx + 8]
movsx esi, word [ebx + 5]
mov edx, dword [ebp + 4]
shr edx, 1
sub esi, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
add esi, eax
mov eax, dword [ecx + 0xc]
movsx edi, word [ebx + 7]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [ebp + 8]
sar eax, 0x10
add edi, eax
mov eax, dword [ecx + 0x28]
sub edi, edx
test eax, 0x40000000
je 0x40d854
mov eax, dword [0x447f2c]
mov edx, dword [0x447dad]
add edx, eax
mov eax, dword [0x447f30]
sub esi, edx
mov edx, dword [0x447dc1]
add edx, eax
sub edi, edx
mov eax, dword [0x42470c]
test eax, eax
mov dword [esp + 0x78], eax
je 0x40d8c3
mov ebp, dword [esp + 0x1c]
mov ebx, 0x4c
jmp 0x40d872
mov ecx, dword [0x4cfa00]
mov eax, dword [0x41eda4]
mov ecx, dword [ebx + ecx + 0xd9]
push ebp
push eax
push ecx
call fcn.0040c860
mov edx, ebx
add esp, 0xc
sub ebx, 4
test edx, edx
jne 0x40d86c
mov ebx, 0x4c
jmp 0x40d89d
mov ebp, dword [esp + 0x1c]
mov ecx, dword [0x4cfa00]
mov eax, dword [0x41eda0]
push ebp
push eax
mov edx, dword [ebx + ecx + 0x89]
push edx
call fcn.0040c860
mov eax, ebx
add esp, 0xc
sub ebx, 4
test eax, eax
jne 0x40d899
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov dx, word [ecx + 3]
mov ecx, dword [esp + 0x68]
and edx, 0xc000
add edx, ebx
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edi
push esi
push 0x4d1a20
push edx
push eax
call fcn.0040c140
mov eax, dword [esp + 0x98]
add esp, 0x20
test eax, eax
je case.0x40df34.9
mov esi, 0x4c
mov edx, dword [0x4cfa00]
mov ecx, dword [0x41eda4]
push ebx
push ecx
mov eax, dword [esi + edx + 0xd9]
push eax
call fcn.0040c900
mov ecx, esi
add esp, 0xc
sub esi, 4
test ecx, ecx
jne 0x40d90f
mov esi, 0x4c
mov eax, dword [0x4cfa00]
mov edx, dword [0x41eda0]
push ebx
push edx
mov ecx, dword [esi + eax + 0x89]
push ecx
call fcn.0040c900
mov edx, esi
add esp, 0xc
sub esi, 4
test edx, edx
jne 0x40d93b
mov ecx, dword [0x4cfa00]
mov eax, dword [ecx + 0x15a]
test eax, eax
jne case.0x40df34.9
mov eax, dword [ecx + 0x15e]
push edx
sar eax, 2
and eax, 3
push edx
add eax, 4
push edx
push edx
push 0x60
shl eax, 6
push eax
mov eax, dword [ecx + 0xc]
cdq
and edx, 0xffff
push 0x20
add eax, edx
mov edx, dword [0x447f30]
sar eax, 0x10
sub eax, edx
push 0x40
sub eax, 0x40
push eax
mov eax, dword [ecx + 8]
mov ecx, dword [0x447f2c]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, ecx
sub eax, 0x20
push eax
push 0x424f74
call fcn.0040b4c0
mov ecx, dword [0x4cfa00]
push 0
push 0
push 0
mov edx, dword [ecx + 0x15e]
mov eax, dword [ecx + 0xc]
and edx, 3
push 0
add edx, 4
push 0x40
shl edx, 6
push edx
mov edi, dword [0x447f30]
cdq
and edx, 0xffff
push 0x20
add eax, edx
push 0x40
sar eax, 0x10
sub eax, edi
mov edi, dword [0x447f2c]
sub eax, 0x20
push eax
mov eax, dword [ecx + 8]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, edi
sub eax, 0x20
push eax
push 0x424f74
call fcn.0040b4c0
add esp, 0x58
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x5c]
test eax, eax
je 0x40da79
mov eax, dword [ecx + 8]
mov ebx, dword [esp + 0x20]
cdq
movsx edi, word [ebx + 5]
and edx, 0xffff
add eax, edx
mov esi, eax
mov eax, dword [esp + 0x18]
sar esi, 0x10
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x1c]
sub esi, edi
sub esi, edx
xor eax, 1
mov dword [esp + 0x1c], eax
jmp 0x40da94
mov eax, dword [ecx + 8]
mov ebx, dword [esp + 0x20]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [ebx + 5]
mov esi, eax
sar esi, 0x10
add esi, edx
mov eax, dword [0x447dad]
add esi, eax
mov eax, dword [ecx + 0xc]
cdq
movsx edi, word [ebx + 7]
and edx, 0xffff
mov ecx, dword [ecx + 0x68]
add eax, edx
mov edx, dword [0x447dc1]
sar eax, 0x10
add edx, eax
mov eax, dword [esp + 0x24]
add edi, edx
mov edx, dword [eax + 0x114]
shl ecx, 4
add ecx, edx
test byte [ecx + 1], 8
je 0x40db21
mov bx, word [ecx + 2]
mov eax, 0xae147ae1
movsx edx, bx
mov dword [esp + 0x78], edx
imul edx, dword [0x447f2c]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
test bx, bx
jge 0x40db1d
mov eax, dword [esp + 0x78]
cdq
mov ebx, eax
mov eax, 0x66666667
xor ebx, edx
sub ebx, edx
neg ebx
shl ebx, 6
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
mov ebx, dword [esp + 0x20]
mov al, byte [ecx + 1]
test al, 0x10
mov byte [esp + 0x13], al
je 0x40db84
mov cx, word [ecx + 4]
mov eax, 0xae147ae1
movsx edx, cx
mov dword [esp + 0x78], edx
imul edx, dword [0x447f30]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add edi, edx
test cx, cx
jge 0x40db80
mov eax, dword [esp + 0x78]
cdq
xor eax, edx
sub eax, edx
lea ecx, [eax*4]
sub ecx, eax
mov eax, 0x66666667
neg ecx
shl ecx, 4
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add edi, edx
mov al, byte [esp + 0x13]
test al, 2
je 0x40dc6d
test al, 4
je 0x40dc15
test esi, esi
jle 0x40db9e
sub esi, ebp
test esi, esi
jg 0x40db98
test edi, edi
jle 0x40dbac
mov eax, dword [esp + 0x28]
sub edi, eax
test edi, edi
jg 0x40dba6
cmp edi, 0x1e0
mov ebx, edi
jge case.0x40df34.9
cmp esi, 0x280
mov edi, esi
jge 0x40dc01
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov ax, word [edx + 3]
mov edx, dword [esp + 0x1c]
and eax, 0xc000
add eax, edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebp
push ebx
push edi
push 0x4d1a20
push edx
push eax
call fcn.0040c140
add edi, ebp
add esp, 0x20
cmp edi, 0x280
jl 0x40dbc4
add ebx, dword [esp + 0x28]
cmp ebx, 0x1e0
jl 0x40dbba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
test esi, esi
jle 0x40dc1f
sub esi, ebp
test esi, esi
jg 0x40dc19
cmp esi, 0x280
jge case.0x40df34.9
mov cx, word [ebx + 3]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
and ecx, 0xc000
add ecx, eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ebp
push edi
push esi
push 0x4d1a20
push eax
push ecx
call fcn.0040c140
add esi, ebp
add esp, 0x20
cmp esi, 0x280
jl 0x40dc2b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
test al, 4
je 0x40dccc
mov ebx, dword [esp + 0x28]
test edi, edi
jle 0x40dc7f
sub edi, ebx
test edi, edi
jg 0x40dc79
cmp edi, 0x1e0
jge case.0x40df34.9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ax, word [edx + 3]
mov edx, dword [esp + 0x18]
and eax, 0xc000
add eax, ecx
mov ecx, dword [esp + 0x14]
push eax
push ebx
push ebp
push edi
push esi
push 0x4d1a20
push ecx
push edx
call fcn.0040c140
add edi, ebx
add esp, 0x20
cmp edi, 0x1e0
jl 0x40dc8b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ax, word [ebx + 3]
mov ecx, dword [esp + 0x1c]
and eax, 0xc000
mov edx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebp
push edi
push esi
push 0x4d1a20
push edx
push eax
call fcn.0040c140
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x5c]
test eax, eax
je 0x40dd3b
mov eax, dword [ecx + 8]
mov ebx, dword [esp + 0x20]
cdq
movsx edi, word [ebx + 5]
and edx, 0xffff
add eax, edx
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x1c]
sar esi, 0x10
sub esi, edi
mov edi, dword [edx + 4]
sub esi, edi
xor eax, 1
mov dword [esp + 0x1c], eax
jmp 0x40dd56
mov eax, dword [ecx + 8]
mov ebx, dword [esp + 0x20]
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movsx eax, word [ebx + 5]
sar esi, 0x10
add esi, eax
mov eax, dword [ecx + 0xc]
cdq
and edx, 0xffff
add eax, edx
movsx edx, word [ebx + 7]
mov edi, eax
mov eax, dword [ecx + 0x28]
sar edi, 0x10
add edi, edx
test eax, 0x40000000
je 0x40dd95
mov eax, dword [0x447f2c]
mov edx, dword [0x447dad]
add edx, eax
mov eax, dword [0x447f30]
sub esi, edx
mov edx, dword [0x447dc1]
add edx, eax
sub edi, edx
mov ecx, dword [ecx + 0x156]
lea eax, [ecx - 0xa]
cmp eax, 0xb
ja case.0x40ddaf.14
xor ecx, ecx
mov cl, byte [eax + 0x40e470]
jmp dword [ecx*4 + 0x40e45c]
mov ecx, dword [0x4dfc91]
test ecx, ecx
je case.0x40ddaf.14
mov eax, dword [0x4dfc85]
imul eax, ebp
cdq
idiv ecx
mov ecx, dword [esp + 0x14]
mov edx, ebp
sub edx, eax
sub ebp, eax
add ecx, edx
add esi, ebp
mov dword [esp + 0x14], ecx
jmp 0x40de7d
mov ecx, dword [0x470058]
mov eax, 1
test ecx, ecx
jne 0x40de03
mov eax, dword [0x4701c4]
cmp eax, 0xffffffff
je case.0x40df34.9
imul eax, eax, 0xe03f
mov ecx, dword [eax + 0x4dfc91]
test ecx, ecx
je case.0x40ddaf.14
mov eax, dword [eax + 0x4dfc85]
jmp 0x40de77
mov ecx, dword [0x4dfca1]
test ecx, ecx
je case.0x40ddaf.14
mov eax, dword [0x4dfc9d]
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, ebp
sub ecx, eax
sub ebp, eax
add edx, ecx
add esi, ebp
mov dword [esp + 0x14], edx
jmp 0x40de7d
mov ecx, dword [0x470058]
mov eax, 1
test ecx, ecx
jne 0x40de61
mov eax, dword [0x4701c4]
cmp eax, 0xffffffff
je case.0x40df34.9
imul eax, eax, 0xe03f
mov ecx, dword [eax + 0x4dfca1]
test ecx, ecx
je case.0x40ddaf.14
mov eax, dword [eax + 0x4dfc9d]
imul eax, ebp
cdq
idiv ecx
mov ebp, eax
mov dx, word [ebx + 3]
mov eax, dword [esp + 0x1c]
and edx, 0xc000
add edx, eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ebp
push edi
jmp 0x40d790
test eax, eax
jle 0x40df28
lea eax, [eax + eax*4]
lea esi, [eax*4 + 0x424f60]
mov eax, dword [eax*4 + 0x424f60]
test eax, eax
je case.0x40df34.9
mov edx, dword [esi + 0x10]
test edx, edx
je 0x40dedb
mov ecx, dword [0x425a44]
push edx
push eax
push ecx
call fcn.004140c0
mov ecx, dword [0x4cfa00]
add esp, 0xc
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [ecx + 0x54]
push edx
mov edx, dword [esi + 8]
push eax
mov eax, dword [esi + 4]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov eax, dword [ecx + 8]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
push esi
call fcn.0040b4c0
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
add eax, 0xa
cmp eax, 8
ja case.0x40df34.9
jmp dword [eax*4 + 0x40e47c]
mov esi, 0x470208
mov dword [esp + 0x68], 0x400
mov ebp, 4
or ebx, 0xffffffff
cmp dword [esi - 0x28], ebp
jne 0x40dfe5
cmp dword [esi - 0x18], ebx
jne 0x40dfe5
test dword [esi], 0x80000000
je 0x40dfe5
mov edi, dword [esi + 0x30]
mov eax, dword [esi - 0x1c]
sub eax, edi
cdq
and edx, 0xfffff
add eax, edx
sar eax, 0x14
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x48], eax
mov dword [ecx + 0x44], eax
mov edx, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x48]
push edx
push ecx
push eax
mov eax, edi
mov ecx, dword [0x447f30]
cdq
and edx, 0xffff
push 3
add eax, edx
push 0x60
sar eax, 0x10
sub eax, ecx
push 0
push 0x20
sub eax, 0x10
push 0x80
push eax
mov eax, dword [esi - 0x20]
mov ecx, dword [0x447f2c]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, ecx
sub eax, 0x38
push eax
push 0x424f74
call fcn.0040b4c0
mov ecx, dword [0x4cfa00]
add esp, 0x2c
mov eax, dword [esp + 0x68]
add esi, 0x17e
dec eax
mov dword [esp + 0x68], eax
jne 0x40df50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [ecx + 0x5c]
shl eax, 0x1e
push edx
mov edx, dword [ecx + 0x15a]
add eax, 2
mov edi, dword [0x447f2c]
push eax
mov eax, dword [ecx + 0x156]
shl edx, 7
push edx
cdq
and edx, 7
add eax, edx
mov edx, dword [0x447f30]
sar eax, 3
shl eax, 7
push eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
sub eax, edx
sub ecx, edi
push 0x80
sub eax, 0x40
push 0x80
sub ecx, 0x40
push eax
push ecx
push 0x424f74
call fcn.0040b4c0
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [ecx + 0xc]
push edx
push 4
cdq
and edx, 0xffff
push 0
add eax, edx
push 0
push 0x200
push 0x200
sar eax, 0x10
push eax
mov eax, dword [ecx + 8]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
push 0x424f74
call fcn.0040b4c0
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x4c]
mov edx, dword [ecx + 0x48]
push eax
mov eax, dword [ecx + 0x44]
push edx
mov edx, dword [ecx + 0xc]
push eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0x156]
push 0
push edx
push eax
push ecx
call fcn.0040bed0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
mov esi, dword [0x447f30]
mov ebp, dword [0x447f2c]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [ecx + 0xc]
push edx
mov edx, dword [ecx + 8]
sub eax, esi
push 4
push eax
mov eax, dword [ecx + 0x156]
sub edx, ebp
push edx
push eax
call fcn.0040bfb0
mov eax, dword [0x4cfa00]
mov edi, dword [0x447f2c]
mov ebp, dword [0x447f30]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
push ecx
mov ecx, dword [eax + 0x44]
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push ecx
push 4
push 0x40
push 0
sub eax, edi
push 0x20
sub edx, ebp
push 0x60
add eax, 0x20
push edx
push eax
push 0x424f74
call fcn.0040b4c0
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push edx
push 0
push 0x240
push 0
push 0x40
push 0x100
sub ecx, 0xc0
push eax
push ecx
push 0x424f74
call fcn.0040b4c0
mov eax, 0x66666667
add esp, 0x2c
imul dword [0x470044]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x40e1f3
mov eax, dword [0x4cfa00]
shl edx, 6
mov ecx, dword [eax + 0x4c]
push ecx
mov ecx, dword [eax + 0x48]
push ecx
mov ecx, dword [eax + 0x44]
push ecx
push 0
push 0x200
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 0x40
push 0x40
add eax, 0x40
push edx
push eax
push 0x424f74
call fcn.0040b4c0
add esp, 0x2c
mov ecx, dword [0x4cfa00]
mov esi, 0xa
mov edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x48]
push edx
mov edx, dword [ecx + 0x44]
push eax
mov eax, dword [0x470044]
push edx
push 0
cdq
idiv esi
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push 0x200
add ecx, 0x80
shl edx, 6
push edx
push 0x40
push 0x40
push eax
push ecx
push 0x424f74
call fcn.0040b4c0
mov eax, dword [0x4cfa00]
mov edx, dword [eax + 0x4c]
mov ecx, dword [eax + 0x48]
push edx
mov edx, dword [eax + 0x44]
push ecx
mov ecx, dword [eax + 0xc]
push edx
mov edx, dword [eax + 8]
push 0
push 0x240
push 0x100
push 0x5c
add ecx, 0x40
push 0x100
sub edx, 0x80
push ecx
push edx
push 0x424f74
call fcn.0040b4c0
add esp, 0x58
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x4c]
mov edx, dword [ecx + 0x48]
push eax
mov eax, dword [ecx + 0x44]
push edx
mov edx, dword [ecx + 0xc]
push eax
mov eax, dword [ecx + 8]
push 0
push 0x240
push 0x200
push 0x40
push 0xc0
sub eax, 0x100
push edx
push eax
push 0x424f74
call fcn.0040b4c0
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ecx, dword [ecx + 0x156]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, edx
dec edx
test eax, eax
je case.0x40df34.9
mov eax, dword [0x4246cc]
inc edx
mov dword [esp + 0x64], edx
mov ebx, dword [0x424704]
mov edi, 0x1de
test ebx, ebx
lea ecx, [eax + 2]
lea edx, [eax + 0x500]
lea esi, [eax + 0x502]
je 0x40e36e
mov dword [esp + 0x68], edi
mov edi, 0x27e
mov bx, word [esi]
mov bp, word [edx]
shr ebx, 2
shr ebp, 2
and ebx, 0x39e7
and ebp, 0x39e7
add ebx, ebp
mov bp, word [ecx]
shr ebp, 2
and ebp, 0x39e7
add eax, 2
add ebx, ebp
mov bp, word [eax - 2]
shr ebp, 2
and ebp, 0x39e7
add ecx, 2
add ebx, ebp
add edx, 2
mov word [eax - 2], bx
add esi, 2
dec edi
jne 0x40e317
mov edi, dword [esp + 0x68]
dec edi
mov dword [esp + 0x68], edi
jne 0x40e312
jmp 0x40e3cc
mov dword [esp + 0x68], edi
mov edi, 0x27e
mov bx, word [esi]
mov bp, word [edx]
shr ebx, 2
shr ebp, 2
and ebx, 0x1ce7
and ebp, 0x1ce7
add ebx, ebp
mov bp, word [ecx]
shr ebp, 2
and ebp, 0x1ce7
add eax, 2
add ebx, ebp
mov bp, word [eax - 2]
shr ebp, 2
and ebp, 0x1ce7
add ecx, 2
add ebx, ebp
add edx, 2
mov word [eax - 2], bx
add esi, 2
dec edi
jne 0x40e377
mov edi, dword [esp + 0x68]
dec edi
mov dword [esp + 0x68], edi
jne 0x40e372
mov ecx, dword [esp + 0x64]
mov eax, dword [0x4246cc]
dec ecx
mov dword [esp + 0x64], ecx
jne 0x40e2f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret