Function at 0x40ed42
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb8
mov ecx, dword [0x4469c4]
mov dword [esp + 0xc0], 0xfe3c16d3
mov word [esp + 0xc4], 0
mov byte [esp + 0xc6], 0
mov dword [esp + 0x1c0], 0
mov eax, dword [esp + 0x1c0]
cmp eax, 6
ja 0x40d55e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c0]
movzx edx, byte [esp + edx + 0xc0]
add eax, 0x99dff0aa
xor eax, edx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0xad
mov edx, dword [esp + 0x1c0]
mov byte [esp + edx + 0xc0], al
inc dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c0]
cmp eax, 7
jb 0x40d510
mov edx, dword [str.MeHdy4__pl2vrs3]
mov dword [esp + 0x2a8], 0xb9e79192
mov dword [esp + 0x2ac], 0xf18a93e7
mov dword [esp + 0x2b0], 0xf1828fff
mov dword [esp + 0x2b4], 0x81f2fd8a
mov dword [esp + 0x2b8], 0xf0418784
mov dword [esp + 0x2bc], 0xcad4f682
mov dword [esp + 0x2c0], 0x8639c4c7
mov dword [esp + 0x2c4], 0x1edcfc86
mov word [esp + 0x2c8], 0
mov byte [esp + 0x2ca], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x22
ja 0x40d61f
nop
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
add eax, 0xbcc7012a
xor eax, esi
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1c0]
add al, 0xa9
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x23
jb 0x40d5e0
movzx ebx, byte [esp + 0x2a8]
lea eax, [esp + 0x1c0]
test bl, bl
je 0x40d64b
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d640
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d66b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40d660
mov byte [eax], 0
movzx edx, byte [esp + 0xc0]
test dl, dl
je 0x40d69b
lea esi, [esp + 0xc1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40d690
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d6bb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40d6b0
mov byte [eax], 0
mov dword [esp + 0x2a8], 0xc17fcf89
mov dword [esp + 0x2ac], 0xc576c37e
mov dword [esp + 0x2b0], 0xd978c763
mov dword [esp + 0x2b4], 0xdda5db6c
mov dword [esp + 0x2b8], 0xd155df88
mov dword [esp + 0x2bc], 0xd575d360
mov dword [esp + 0x2c0], 0x29b6d79e
mov dword [esp + 0x2c4], 0x2d9a2b8b
mov dword [esp + 0x2c8], 0x21922f9c
mov dword [esp + 0x2cc], 0x2587239b
mov dword [esp + 0x2d0], 0x39922787
mov dword [esp + 0x2d4], 0x3d8b3b83
mov dword [esp + 0x2d8], 0x314f3f82
mov dword [esp + 0x2dc], 0x354d33b8
mov dword [esp + 0x2e0], 0x9bf37bd
mov dword [esp + 0x2e4], 0xd750b81
mov dword [esp + 0x2e8], 0x1bf0faa
mov dword [esp + 0x2ec], 0x5bd03b2
mov dword [esp + 0x2f0], 0x19b1077b
mov dword [esp + 0x2f4], 0x1da61baa
mov dword [esp + 0x2f8], 0x11a01fbb
mov dword [esp + 0x2fc], 0x15a313b5
mov dword [esp + 0x300], 0x69b117b0
mov dword [esp + 0x304], 0x6d756bcc
mov dword [esp + 0x308], 0x616e6f76
mov word [esp + 0x30c], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x65
ja 0x40d841
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x4e52fe65
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0x57
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x66
jb 0x40d800
sub eax, ecx
mov dword [esp + 0xc0], 0x53b35d6f
mov dword [esp + 0xc4], 0x57af51a0
mov word [esp + 0xc8], 0x5554
mov dword [esp + 0xca], 0
mov word [esp + 0xce], 0
mov dword [esp + 0x240], 0
mov edx, dword [esp + 0x240]
cmp edx, 0xf
ja 0x40d8da
nop
mov edx, dword [esp + 0x240]
mov esi, dword [esp + 0x240]
movzx esi, byte [esp + esi + 0xc0]
add edx, 0x578de496
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x36
mov esi, dword [esp + 0x240]
mov byte [esp + esi + 0xc0], dl
inc dword [esp + 0x240]
mov edx, dword [esp + 0x240]
cmp edx, 0x10
jb 0x40d890
lea edx, [esp + 0xb8]
lea esi, [esp + 0xa8]
lea ebx, [esp + 0x2a8]
lea edi, [esp + 0xc0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x44bb00
call fcn.0040c2a0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x447464]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x44746c]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40d956
cmp edx, 0x2e
jne 0x40d957
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
je 0x40d966
cmp ecx, 0x2e
jne 0x40d967
dec eax
push eax
call fcn.004096b0
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.00439a60
add esp, 8
push dword [esp + 0xa8]
call fcn.0043cd00
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44746c]
push esi
call fcn.00402840
add esp, 4
mov ebx, eax
jmp dword [0x447474]
push esi
call fcn.004096c0
add esp, 4
push ebx
call fcn.00403130
add esp, 4
mov esi, eax
mov word [esp + 0x2a8], 0x5951
mov byte [esp + 0x2aa], 0xb9
mov dword [esp + 0x2ab], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x40da2f
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x4efbb86e
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x37
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x40d9f0
lea eax, [esp + 0x2a8]
push eax
push esi
call fcn.004031b0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44747c]
call fcn.00438030
movzx eax, al
jmp dword [eax*4 + 0x447484]
mov word [esp + 0x2a8], 0xb8b6
mov byte [esp + 0x2aa], 0xd7
mov word [esp + 0x2ab], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x40dae8
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add edx, 0xaca3fcc0
add eax, 0xaca3fcc0
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0xc0]
mov ecx, eax
not ecx
and ecx, 0x15
and eax, 0xea
sub eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x40da90
lea eax, [esp + 0x2a8]
push eax
push esi
call fcn.004031b0
add esp, 8
mov dword [esp + 0xa0], eax
mov dword [esp + 0x20], 0x17ab96
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x40db68
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x72d0d2f7
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x12
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x40db20
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004031b0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
push esi
call fcn.0040e760
add esp, 4
push ebx
call fcn.004033a0
add esp, 4
lea esi, [esp + 0x240]
mov ecx, esi
push 1
call fcn.00409e60
push esi
call fcn.0041e350
add esp, 4
mov ecx, esi
call fcn.0040a700
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.00409e60
push esi
call fcn.0041ea40
add esp, 4
mov ecx, esi
call fcn.0040a700
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.00409e60
push esi
call fcn.0041ecf0
add esp, 4
mov ecx, esi
call fcn.0040a700
lea ebx, [esp + 0xb78]
mov ecx, ebx
push 1
call fcn.00409e60
push ebx
call fcn.004218b0
add esp, 4
push ebx
call fcn.00422180
add esp, 4
push ebx
call fcn.004225d0
add esp, 4
push ebx
call fcn.00425450
add esp, 4
mov ecx, ebx
call fcn.0040a700
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.00409e60
push esi
call fcn.00424520
add esp, 4
mov ecx, esi
call fcn.0040a700
lea ebx, [esp + 0xaa8]
mov ecx, ebx
push 1
call fcn.00409e60
push ebx
call fcn.00429d30
add esp, 4
push ebx
call fcn.004338f0
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x44748c]
push ebx
call fcn.00426ff0
add esp, 4
lea ecx, [esp + 0xaa8]
call fcn.0040a700
mov dword [esp + 0x20], 0x546d5d9c
mov word [esp + 0x24], 0xba5e
mov byte [esp + 0x26], 0xf8
mov dword [esp + 0x27], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xb
ja 0x40dd28
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x99b24c45
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x4d
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xc
jb 0x40dce0
mov eax, dword [0x4469c4]
mov dword [esp + 0xc], 0xc01e6c37
mov dword [esp + 0x10], 0
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
cmp ecx, 7
ja 0x40ddb6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x9164142f
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
mov edx, ecx
xor edx, 0xf2
and ecx, 0xd
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0xc0]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
cmp ecx, 8
jb 0x40dd60
mov ecx, dword [str.MeHdy4__pl2vrs3]
mov dword [esp + 0x2a8], 0x6da75552
mov dword [esp + 0x2ac], 0x57a3535c
mov dword [esp + 0x2b0], 0xafae5f56
mov dword [esp + 0x2b4], 0x1858555e
mov dword [esp + 0x2b8], 0x7db147b7
mov dword [esp + 0x2bc], 0x770a71
mov dword [esp + 0x2c0], 0x754f4345
mov byte [esp + 0x2c4], 0x2d
mov dword [esp + 0x2c5], 0
mov dword [esp + 0x2c8], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x23
ja 0x40de81
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x8b740120
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0xef
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x24
jb 0x40de40
movzx edx, byte [esp + 0x2a8]
test dl, dl
je 0x40deab
lea edi, [esp + 0xc0]
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40dea0
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40decb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dec0
mov byte [edi], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x40deeb
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dee0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40df0b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40df00
mov byte [edi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40df2b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40df20
mov byte [edi], 0
movzx eax, byte [0x44baa0]
test al, al
je 0x40df51
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [ecx + 0x44baa1]
inc ecx
test al, al
jne 0x40df40
add edi, ecx
mov byte [edi], 0
lea eax, [esp + 0xc0]
mov edx, edi
xor edx, eax
mov ecx, eax
not ecx
and ecx, edi
add ecx, ecx
mov dword [esp + 0x2a8], 0xdfb73b1
mov dword [esp + 0x2ac], 0x9840ff8
mov dword [esp + 0x2b0], 0x5f20bf7
mov dword [esp + 0x2b4], 0x135078a
mov dword [esp + 0x2b8], 0x1d9503ee
mov dword [esp + 0x2bc], 0x19e51fee
mov dword [esp + 0x2c0], 0x15341bd0
mov dword [esp + 0x2c4], 0x11e017f7
mov dword [esp + 0x2c8], 0x2dd813e2
mov dword [esp + 0x2cc], 0x29cb2fd7
mov dword [esp + 0x2d0], 0x25a82bcb
mov dword [esp + 0x2d4], 0x21d727df
mov dword [esp + 0x2d8], 0x3d0b23d4
mov dword [esp + 0x2dc], 0x390d3fb6
mov dword [esp + 0x2e0], 0x35bb3bb5
mov dword [esp + 0x2e4], 0x310537b9
mov dword [esp + 0x2e8], 0xcd3b33cc
mov dword [esp + 0x2ec], 0xc93dcf3c
mov dword [esp + 0x2f0], 0xc549cbff
mov dword [esp + 0x2f4], 0xc134c734
mov dword [esp + 0x2f8], 0xdd2ac33f
mov dword [esp + 0x2fc], 0xd92fdf3d
mov dword [esp + 0x300], 0xd529db26
mov dword [esp + 0x304], 0xd1c5d72a
mov dword [esp + 0x308], 0xedecd3c8
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0xc]
cmp esi, 0x63
ja 0x40e0cb
nop
nop
nop
nop
nop
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0xc]
movzx edi, byte [esp + edi + 0x2a8]
add esi, 0x663c0fbe
xor esi, edi
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x20]
add bl, 0x34
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x2a8], bl
inc dword [esp + 0xc]
mov esi, dword [esp + 0xc]
cmp esi, 0x64
jb 0x40e090
sub ecx, edx
mov dword [esp + 0x20], 0xc260c010
mov dword [esp + 0x24], 0xc65cc453
mov word [esp + 0x28], 0xb8c7
mov dword [esp + 0x2a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xd
ja 0x40e135
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x20]
add edx, 0xc5d30d37
xor edx, esi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 8
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x20], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xe
jb 0x40e100
lea edx, [esp + 0xb4]
lea esi, [esp + 0xa4]
push edx
push esi
push ecx
push eax
lea edi, [esp + 0x2b8]
push edi
lea eax, [esp + 0x34]
push eax
push 0x44bb00
call fcn.0040c2a0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x447494]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x44749c]
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xa4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e1a2
cmp edx, 0x2e
jne 0x40e1a3
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e1b2
cmp ecx, 0x2e
jne 0x40e1b3
dec eax
push eax
call fcn.004096b0
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00439a60
add esp, 8
push dword [esp + 0xa4]
call fcn.0043cd00
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44749c]
push ebx
call fcn.00402840
add esp, 4
mov esi, eax
jmp dword [0x4474a4]
push ebx
call fcn.004096c0
add esp, 4
push esi
call fcn.00411750
add esp, 4
push esi
call fcn.004033a0
add esp, 4
mov dword [esp + 0x2a8], 0xb919390
mov dword [esp + 0x2ac], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 7
mov esi, dword [esp + 0xb0]
ja 0x40e284
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2a8]
mov edx, eax
and edx, 0xf7203852
xor eax, 0xf7203852
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xa2
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 8
jb 0x40e240
push edi
push esi
call fcn.004031b0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4474ac]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x4474b4]
lea ecx, [esp + 0x2a8]
push 1
call fcn.00409e60
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44be09], 0
lea eax, [eax + 1]
jne 0x40e2d0
mov dword [esp + 0x20], 0xabb7a587
mov dword [esp + 0x24], 0xa8ad60be
mov dword [esp + 0x28], 0x52af
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xb
ja 0x40e345
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x2e95358e
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x3b
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xc
jb 0x40e310
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x44be08
lea eax, [esp + 0x28]
push eax
call fcn.0040a060
mov ecx, esi
call fcn.0040a700
mov ecx, esi
call fcn.00409ea0
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x4474b4]
push 0
call fcn.004401a0
add esp, 4
mov ecx, dword [case.0x40e379.5]
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4474cc]
mov dword [esp + 0x20], 0x82108c68
mov dword [esp + 0x24], 0x86558065
mov dword [esp + 0x28], 0xba33841e
mov dword [esp + 0x2c], 0xbe9fb822
mov dword [esp + 0x30], 0xb226bc9b
mov dword [esp + 0x34], 0xb650b025
mov dword [esp + 0x38], 0xaa3fb423
mov dword [esp + 0x3c], 0xae7ea889
mov dword [esp + 0x40], 0xa23cac3e
mov dword [esp + 0x44], 0xa687a033
mov dword [esp + 0x48], 0x5ac8a440
mov dword [esp + 0x4c], 0x5e8d58bd
mov dword [esp + 0x50], 0x52db5cc6
mov dword [esp + 0x54], 0x567750ca
mov dword [esp + 0x58], 0x4a9a5473
mov dword [esp + 0x5c], 0x4e6f48ac
mov dword [esp + 0x60], 0x42dc4cd9
mov dword [esp + 0x64], 0x46dc40d2
mov dword [esp + 0x68], 0x7af044d4
mov dword [esp + 0x6c], 0x7e5f78ed
mov dword [esp + 0x70], 0x72e77cac
mov dword [esp + 0x74], 0x76a27051
mov dword [esp + 0x78], 0x6aba7455
mov dword [esp + 0x7c], 0x6efe68fb
mov dword [esp + 0x80], 0x62f56c8b
mov dword [esp + 0x84], 0x668060fa
mov dword [esp + 0x88], 0x1a3b64f8
mov dword [esp + 0x8c], 0x1e3f18c3
mov dword [esp + 0x90], 0x12881cf9
mov dword [esp + 0x94], 0x1637108d
mov dword [esp + 0x98], 0xa0b1433
mov byte [esp + 0x9e], 0
mov word [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7e
ja 0x40e50b
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0xd8595456
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0x25
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7f
jb 0x40e4d0
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x40e531
lea edi, [esp + 0x2a8]
lea edx, [esp + 0x22]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e520
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e561
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40e550
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x44
mov dword [esp + 0x4c], 1
push 0xc9be8534
push dword [0x44ce08]
call fcn.004402f0
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4474d4]
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0xe2fdfcff
mov word [esp + 8], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 5
ja 0x40e69b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 4]
add ecx, 0x9c510d4d
xor ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xbc]
add cl, 0x4d
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 4], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 6
jb 0x40e660
mov ecx, dword [0x44ce14]
test ecx, ecx
je case.0x40e379.8
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44ce18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40e6dd
inc esi
cmp ecx, esi
jne 0x40e6c0
jmp case.0x40e379.8
push ebx
call fcn.004033a0
add esp, 4
xor eax, eax
jmp 0x40e74c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e379.8
push eax
push 1
push dword [0x44ce1c]
push ecx
call fcn.0043ea00
add esp, 0x10
mov eax, dword [case.0x40e379.0]
nop
nop
nop
nop
jmp eax
lea ecx, [esp + 0xaa8]
call fcn.00409ea0
lea ecx, [esp + 0xb10]
call fcn.00409ea0
lea ecx, [esp + 0xb78]
call fcn.00409ea0
lea ecx, [esp + 0xbe0]
call fcn.00409ea0
lea ecx, [esp + 0xc48]
call fcn.00409ea0
lea ecx, [esp + 0x240]
call fcn.00409ea0
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x24], edi
jmp 0x40e7f1
nop
nop
inc esi
push edi
call fcn.00403360
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4474f4]
push esi
push edi
call fcn.00403370
add esp, 8
mov ebx, eax
mov word [esp + 0x50], 0xd962
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40e874
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x283e09bb
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x9b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40e840
push 3
lea eax, [esp + 0x54]
push eax
push ebx
call fcn.00403300
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4474fc]
mov word [esp + 0x50], 0xaa21
lea eax, [esp + 0x53]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e904
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + ecx]
add edx, 0xd37f2f4f
add eax, 0xd37f2f4f
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40e8c0
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.004030e0
add esp, 8
fnstcw word [esp + 0x114]
movzx eax, word [esp + 0x114]
or eax, 0xc00
mov word [esp + 0x11e], ax
fldcw word [esp + 0x11e]
fistp dword [esp + 0x138]
fldcw word [esp + 0x114]
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [esp + 0x4c], esi
jmp dword [ecx*4 + 0x447504]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44750c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x447514]
jmp dword [0x4475b8]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44751c]
mov word [esp + 0x50], 0x57c6
lea eax, [esp + 0x53]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40eac4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xd21d9ccc
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x66
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40ea90
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.00403080
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x50], 0x78c
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40eb34
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x44b642ce
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x38
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40eb00
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.00403080
add esp, 8
mov ebx, dword [esp + 0x18]
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x447704]
mov ecx, ebx
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x40eb60
mov dword [esp + 0x10], eax
xor edi, edi
cmp esi, ebx
jbe 0x40eba7
cmp byte [ebx], 0
je 0x40eba7
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x40eba7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40eb80
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40ebb5
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jae 0x40eeb6
mov edi, dword [esp + 0x38]
cmp ebx, esi
jae 0x40eeb6
mov edi, dword [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40eeb6
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x40eeb2
add ebx, eax
cmp ebx, esi
mov eax, dword [esp + 0x10]
jb 0x40ec00
jmp 0x40eeb6
mov word [esp + 0x50], 0xc57a
lea eax, [esp + 0x53]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40ec94
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x6f79bf27
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x13
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40ec60
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.00403080
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp], 0xd954
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x40ed10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx]
add eax, 0xdd103be1
xor eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0xc5
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x40ecd0
mov eax, esp
push eax
push ebx
call fcn.00403080
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
sete ch
mov dword [esp + 0x18], eax
test eax, eax
sete cl
or cl, ch
movzx eax, cl
jmp dword [eax*4 + 0x4477bc]
mov eax, edx
jmp dword [0x4477c8]
mov ecx, dword [esp + 0x14]
mov esi, ecx
jmp 0x40fb80
sete al
movzx eax, al
jmp dword [eax*4 + 0x447524]
mov word [esp + 0x50], 0xd041
lea eax, [esp + 0x53]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40edc4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xf9b0fe0e
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x21
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40ed90
push 2
lea eax, [esp + 0x54]
push eax
push ebx
call fcn.00403300
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44752c]
jmp dword [0x447538]
mov eax, dword [case.0x40eb55.4]
jmp eax
mov eax, dword [esp + 0x10]
mov word [edi], 0
lea esi, [eax - 1]
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x40eec0
xor edi, edi
cmp eax, esi
jae 0x40ef07
cmp byte [eax], 0
je 0x40ef07
xor edi, edi
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x40ef07
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40eee0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40ef15
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x10]
jae 0x40ef7b
mov edi, dword [esp + 0x34]
cmp ebx, esi
jae 0x40ef7b
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40ef7b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x40ef7b
add ebx, eax
cmp ebx, esi
jb 0x40ef50
mov word [edi], 0
mov word [esp + 0x50], 0xf3e7
mov byte [esp + 0x52], 0x7a
lea eax, [esp + 0x53]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40efe4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xf8596e03
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x81
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40efb0
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00403150
add esp, 8
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov ebx, 0x51eb851f
jmp dword [ecx*4 + 0x44771c]
lea esi, [esp + 0x50]
mov ecx, esi
push 2
call fcn.00409e60
push dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x3c]
push dword [esp + 0x44]
push esi
call fcn.00413970
add esp, 0x14
mov ecx, esi
call fcn.0040a700
movzx eax, al
jmp dword [eax*4 + 0x44775c]
push dword [esp + 0x18]
call fcn.00403360
add esp, 4
mov ecx, eax
mov dword [esp + 0x1c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f0a6
mov esi, eax
test dl, dl
jne 0x40f0ac
mov ecx, esi
push ecx
call fcn.004096b0
add esp, 4
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
add eax, 4
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x447724]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*2]
lea esi, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea ecx, [eax + 0xc]
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x44772c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x44772c]
jmp dword [0x447740]
mov eax, dword [case.0x40e956.4]
nop
jmp eax
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x40ff7a
xor edi, edi
cmp esi, ecx
jbe 0x40fbc7
cmp byte [ecx], 0
je 0x40fbc7
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x40fbc7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40fba0
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
lea eax, [edi + edi]
test edi, edi
jns 0x40fbde
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
add ecx, 0xfffffffe
mov edi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x40fc4b
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x14], esi
jae 0x40fc4b
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fc4b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40fc4b
add ebx, eax
cmp ebx, esi
jb 0x40fc20
mov word [edi], 0
xor ebx, ebx
mov esi, 0xfffffffe
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
add esi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x40fc60
lea eax, [esi + 2]
test ebx, ebx
jns 0x40fc78
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
add esi, eax
mov edx, eax
mov dword [esp + 0x28], eax
cmp eax, esi
jae 0x40fce1
mov eax, dword [esp + 0x18]
lea edi, [eax + ebx]
dec edi
mov edx, dword [esp + 0x28]
cmp eax, edi
jae 0x40fce1
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
nop
nop
nop
cmp byte [ebx], 0
je 0x40fce1
lea eax, [esp + 0x50]
push eax
push edi
push ebx
mov dword [esp + 0x1c], edx
call fcn.0040d340
mov edx, dword [esp + 0x1c]
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edx], cx
add edx, 2
cmp edx, esi
jae 0x40fce1
add ebx, eax
cmp ebx, edi
jb 0x40fcb0
mov word [edx], 0
mov word [esp + 0x50], 0x9aa4
mov byte [esp + 0x52], 0x13
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40fd44
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x641d42bd
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x54
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40fd10
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00403150
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x14]
jmp dword [0x4477cc]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x40ed33.2
xor ebx, ebx
mov eax, dword [esp + 0x14]
cmp edi, eax
jbe 0x40fdf7
cmp byte [eax], 0
je 0x40fdf7
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040d340
add esp, 0xc
inc ebx
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x40fdf7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40fdd0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40fe05
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov esi, eax
mov dword [esp + 0x50], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x40fe5b
mov ebx, dword [esp + 0x14]
cmp ebx, edi
jae 0x40fe5b
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fe5b
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40fe5b
add ebx, eax
cmp ebx, edi
jb 0x40fe30
mov word [esi], 0
mov eax, dword [esp + 0x18]
lea edi, [eax - 1]
mov ebx, 0xffffffff
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
add eax, 2
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40fe80
and eax, 2
xor ebx, 1
add ebx, eax
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x40fea1
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov esi, eax
mov dword [esp + 0x50], 0
lea eax, [eax + ebx*2]
add eax, 0xfffffffe
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x40fefb
mov ebx, dword [esp + 0x18]
cmp ebx, edi
jae 0x40fefb
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fefb
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40fefb
add ebx, eax
cmp ebx, edi
jb 0x40fed0
mov word [esi], 0
mov word [esp + 0x50], 0x9aa4
mov byte [esp + 0x52], 0x13
mov dword [esp + 0x53], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40ff64
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x641d42bd
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x54
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40ff30
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00403150
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov esi, eax
jmp 0x40fb80
mov word [esp + 0xc0], 0x53ff
lea eax, [esp + 0xc2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 6
ja 0x410d39
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0xc0]
add eax, 0x9b5b971
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xdf
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 7
jb 0x410d00
push 5
lea eax, [esp + 0xc4]
push eax
push ebx
call fcn.00403300
add esp, 0xc
jmp dword [0x447540]
mov word [esp + 0xc0], 0x53ff
lea eax, [esp + 0xc2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 6
ja 0x410db9
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0xc0]
add eax, 0x9b5b971
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xdf
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 7
jb 0x410d80
push 5
lea eax, [esp + 0xc4]
push eax
push ebx
call fcn.00403300
add esp, 0xc
jmp case.0x40eddb.3
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447544]
mov word [esp], 0xa62d
lea eax, [esp + 2]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 4
ja 0x410e41
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0xed2171fa
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xa3
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 5
jb 0x410e10
push 2
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403300
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44754c]
mov word [esp + 0x2c], 0x27ba
mov dword [esp + 0x2e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 5
ja 0x410eb3
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2c]
add eax, 0xf0d94638
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xe2
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2c], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 6
jb 0x410e80
push 3
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.00403300
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447554]
mov word [esp + 0x3c], 0x4f3d
mov byte [esp + 0x3e], 0xdd
lea eax, [esp + 0x3f]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 7
ja 0x410f3d
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x8b764f8a
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
xor ecx, 0x51
and eax, 0x2e
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 8
jb 0x410f00
push 3
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.00403300
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44756c]
mov word [esp + 0x50], 0x8310
mov dword [esp + 0x52], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x410fb4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xab120335
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x4b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x410f80
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.00403080
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp], 0xd37f
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x411030
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx]
add eax, 0x19eac92f
xor eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0x1d
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x410ff0
mov eax, esp
push eax
push ebx
call fcn.00403150
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x50], 0xe863
lea eax, [esp + 0x53]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x4110a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xcb7683f0
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xe7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x411070
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.00403080
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x50], 0x9a3d
lea eax, [esp + 0x53]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411124
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + ecx]
add edx, 0xe3c8b9
add eax, 0xe3c8b9
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xe0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x4110e0
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.004030e0
add esp, 8
mov word [esp + 0x50], 0xd1e7
mov byte [esp + 0x52], 0x43
lea eax, [esp + 0x53]
mov byte [eax + 2], 0
mov word [eax], 0
fnstcw word [esp + 0x11a]
movzx eax, word [esp + 0x11a]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x134]
fldcw word [esp + 0x11a]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x48], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x4111dd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x79]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc484f179
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xc8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x4111a0
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.004030e0
add esp, 8
mov word [esp + 0x50], 0x8481
mov byte [esp + 0x52], 0x39
mov word [esp + 0x53], 0
fnstcw word [esp + 0x118]
movzx eax, word [esp + 0x118]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x130]
fldcw word [esp + 0x118]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x28], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x411284
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x50455211
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xd6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x50], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x411250
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.004031b0
add esp, 8
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x1c]
lea esi, [eax - 1]
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x4112a0
xor ebx, ebx
cmp eax, esi
jae 0x4112e7
cmp byte [eax], 0
je 0x4112e7
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push edi
call fcn.0040d340
add esp, 0xc
inc ebx
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x4112e7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4112c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4112f5
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x1c]
jae 0x411369
mov edi, dword [esp + 0x44]
cmp ecx, esi
jae 0x411369
mov edi, dword [esp + 0x44]
mov dword [esp + 0x14], ebx
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411369
lea eax, [esp + 0x50]
push eax
push esi
push ecx
mov ebx, ecx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x411365
add ebx, eax
cmp ebx, esi
mov ecx, ebx
mov ebx, dword [esp + 0x14]
jb 0x411330
jmp 0x411369
mov ebx, dword [esp + 0x14]
mov word [edi], 0
mov eax, esp
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x54]
push edi
push 0
call dword [0x44ce10]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x411392
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x40], ecx
push ecx
push ebx
push edi
push 0
call dword [0x44ce10]
mov ecx, dword [esp + 0x18]
mov eax, ecx
jmp dword [0x447574]
jmp dword [0x44757c]
mov eax, dword [case.0x40e956.4]
nop
nop
jmp eax
push ebx
call fcn.00403360
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x44758c]
mov dword [esp + 0x14], esi
push esi
push ebx
call fcn.00403340
add esp, 8
push eax
call fcn.004030c0
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44759c]
jmp dword [0x447594]
mov esi, eax
inc eax
cmp byte [esi], 0
jne case.0x410f54.3
xor edi, edi
cmp esi, ecx
jbe 0x4115b7
cmp byte [ecx], 0
je 0x4115b7
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x4115b7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411590
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4115c5
mov eax, 0xffffffff
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x18]
jae 0x41162b
mov edi, dword [esp + 0x1c]
cmp ebx, esi
jae 0x41162b
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41162b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d340
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x41162b
add ebx, eax
cmp ebx, esi
jb 0x411600
mov word [edi], 0
lea ecx, [esp + 0x50]
push 1
call fcn.00409e60
xor esi, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x34]
jmp 0x411405
push edi
call fcn.004096c0
add esp, 4
push edi
call fcn.004096c0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, ecx
jmp dword [0x447584]
mov ecx, dword [0x447858]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
int3
fld dword [eax]
invalid
loop 0x4474df
add ch, ah
loope 0x4474e3
add dh, dh
loope 0x4474e7
add bh, bh
loope 0x4474eb
add byte [edx - 0x1d4fffc0], bl
inc eax
add byte [edx], al
out 0x40, eax
add byte [eax - 0x6fffbf1d], al
jecxz 0x4474ff
add byte [eax - 0x6fffbf1d], dl
jecxz 0x447507
add byte [edx + 0x20040e3], dl
out 0x40, eax
add byte [eax - 0x8ffbf1d], ah
out 0x40, al
add byte [esi], bh
inc eax
add byte [eax], al
out 0x40, eax
add byte [eax], al
out 0x40, eax
add byte [eax], al
out 0x40, eax
add byte [edx], al
out 0x40, eax
add al, ch
out 0x40, eax
add byte [esi], ch
pop ss
inc ecx
add byte [esi], ch
pop ss
inc ecx
add byte [edx], cl
call 0xe8d6753e
inc eax
add al, dh
out 0x40, eax
add byte [ebp - 0x17], bl
inc eax
add byte [eax - 0x16], dl
inc eax
add byte [ecx + ebp*8 + 0x40], ch
add byte [esp + ebp*8], bh
inc eax
add al, dh
out 0x40, eax
add byte [ecx - 0x17], bh
inc eax
add byte [esi - 0x16], bl
inc eax
add byte [ebp - 0x13], cl
inc eax
add al, dh
out 0x40, eax
add byte [edx - 0x13], bl
inc eax
add dh, ch
out 0x40, eax
add dl, ah
in eax, dx
inc eax
add byte [edx + 0xd], dl
inc ecx
add bh, cl
or al, 0x41
add byte [edx + 0xd], dl
inc ecx
add cl, dl
or eax, 0xe7ee0041
inc eax
add bh, bl
or eax, 0xe7ee0041
out 0x40, eax
out 0x40, eax
add byte [edi + 0xe], bl
inc ecx
add dh, ch
out 0x40, eax
add cl, dl
push cs
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x17], cl
inc ecx
add byte [ebx + 0xf], bl
inc ecx
add al, dh
out 0x40, eax
add byte [ebx + edx + 0x15700041], bh
inc ecx
add byte [ebx + 0x16], dl
inc ecx
add byte [edx + 0x16], cl
inc ecx
add byte [eax + 0x15], dh
inc ecx
add byte [edx + 0x16], cl
inc ecx
add byte [ebx + 0x15], al
inc ecx
add byte [esp + edx], bl
inc ecx
add byte [ecx + 0x15], cl
inc ecx
add dl, dh
cli
inc eax
add byte [ebx + 0x14], al
inc ecx
add byte [eax], al
adc al, 0x41
add byte [0x4115], dh
adc al, 0x41
add al, bh
cli
inc eax
add byte [ebx + edi*8], al
inc eax
add byte [edi - 0x17], bh
inc eax
add dh, ah
jmp 0xee2c75fe