Function at 0x40d9f0
Capabilities:
Encode data using xor
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb0
mov eax, dword [0x4448e4]
mov dword [esp + 0xb8], 0xdb1f2be6
mov dword [esp + 0xbc], 0
mov dword [esp + 0x220], 0
mov ecx, dword [esp + 0x220]
cmp ecx, 7
ja 0x40da90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x220]
movzx edx, byte [esp + edx + 0xb8]
add ecx, 0x71e28692
xor ecx, edx
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a0]
add cl, 0xb2
mov edx, dword [esp + 0x220]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 0x220]
mov ecx, dword [esp + 0x220]
cmp ecx, 8
jb 0x40da40
mov edx, dword [str.c2CoW0__DOMOVOY]
mov dword [esp + 0x2a0], 0x2c640c0f
mov dword [esp + 0x2a4], 0x7c077678
mov dword [esp + 0x2a8], 0x74077a68
mov dword [esp + 0x2ac], 0x7c0f707f
mov dword [esp + 0x2b0], 0x17460201
mov dword [esp + 0x2b4], 0x59510907
mov dword [esp + 0x2b8], 0x54e4740
mov dword [esp + 0x2bc], 0x8d490f0b
mov word [esp + 0x2c0], 0
mov byte [esp + 0x2c2], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x22
ja 0x40db6d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
movzx esi, byte [esp + esi + 0x2a0]
add ecx, 0xe3c29cb2
xor ecx, esi
mov dword [esp + 0x220], ecx
mov ecx, dword [esp + 0x220]
mov esi, ecx
not esi
and esi, 0x5c
and ecx, 0xa3
sub ecx, esi
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x2a0], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x23
jb 0x40db20
movzx ebx, byte [esp + 0x2a0]
lea ecx, [esp + 0x220]
test bl, bl
je 0x40db9b
lea esi, [esp + 0x2a1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40db90
mov byte [ecx], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40dbbb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40dbb0
mov byte [ecx], 0
movzx edx, byte [esp + 0xb8]
test dl, dl
je 0x40dbeb
lea esi, [esp + 0xb9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40dbe0
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
je 0x40dc0b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x40dc00
mov byte [ecx], 0
lea eax, [esp + 0x220]
mov edx, eax
not edx
and edx, ecx
add edx, edx
mov dword [esp + 0x2a0], 0xa7559957
mov dword [esp + 0x2a4], 0xa35ea556
mov dword [esp + 0x2a8], 0xaf5ca14d
mov dword [esp + 0x2ac], 0xab9fad50
mov dword [esp + 0x2b0], 0xb74fa974
mov dword [esp + 0x2b4], 0xb35fb544
mov dword [esp + 0x2b8], 0xbf9eb176
mov dword [esp + 0x2bc], 0xbb4abd5d
mov dword [esp + 0x2c0], 0x47b2b948
mov dword [esp + 0x2c4], 0x43ad45ad
mov dword [esp + 0x2c8], 0x4fb241a1
mov dword [esp + 0x2cc], 0x4bb94da5
mov dword [esp + 0x2d0], 0x576549ba
mov dword [esp + 0x2d4], 0x536755ac
mov dword [esp + 0x2d8], 0x5fa551ab
mov dword [esp + 0x2dc], 0x5b6f5da7
mov dword [esp + 0x2e0], 0x679559b2
mov dword [esp + 0x2e4], 0x6397659a
mov dword [esp + 0x2e8], 0x6f936155
mov dword [esp + 0x2ec], 0x6b9e6d92
mov dword [esp + 0x2f0], 0x77846985
mov dword [esp + 0x2f4], 0x7381759b
mov dword [esp + 0x2f8], 0x7f93719c
mov dword [esp + 0x2fc], 0x7b6f7d90
mov dword [esp + 0x300], 0x706796e
mov word [esp + 0x304], 0
xor ecx, eax
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x18]
cmp esi, 0x65
ja 0x40dd91
nop
nop
nop
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x18]
movzx edi, byte [esp + edi + 0x2a0]
add esi, 0x32c6015e
xor esi, edi
mov dword [esp + 0xb8], esi
mov ebx, dword [esp + 0xb8]
add bl, 0x3a
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x2a0], bl
inc dword [esp + 0x18]
mov esi, dword [esp + 0x18]
cmp esi, 0x66
jb 0x40dd50
sub edx, ecx
mov dword [esp + 0xb8], 0xdab8d8e8
mov dword [esp + 0xbc], 0xdea4dcad
mov word [esp + 0xc0], 0xd0d1
mov dword [esp + 0xc2], 0
mov byte [esp + 0xc6], 0
mov dword [esp + 0x1b8], 0
mov ecx, dword [esp + 0x1b8]
cmp ecx, 0xe
ja 0x40de2a
nop
nop
nop
mov ecx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1b8]
movzx esi, byte [esp + esi + 0xb8]
add ecx, 0x4861d9d0
xor ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xf7
mov esi, dword [esp + 0x1b8]
mov byte [esp + esi + 0xb8], cl
inc dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1b8]
cmp ecx, 0xf
jb 0x40dde0
lea ecx, [esp + 0xb4]
lea esi, [esp + 0xa8]
lea ebx, [esp + 0x2a0]
lea edi, [esp + 0xb8]
push ecx
push esi
push edx
push eax
push ebx
push edi
push 0x449a2c
call fcn.0040c7c0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4453bc]
xor esi, esi
xor ecx, ecx
test esi, 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4453d4]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40dea8
cmp edx, 0x2e
jne 0x40dea9
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
je 0x40deb8
cmp ecx, 0x2e
jne 0x40deb9
dec eax
push eax
call fcn.00409d90
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.004376d0
add esp, 8
push dword [esp + 0xa8]
call fcn.0043a960
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4453d4]
push esi
call fcn.00402b60
add esp, 4
mov ebx, eax
jmp dword [0x4453dc]
push esi
call fcn.00409da0
add esp, 4
push ebx
call fcn.004035f0
add esp, 4
mov esi, eax
mov dword [esp + 0x18], 0x59ede1
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 3
ja 0x40df88
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0x22017c3b
xor eax, ecx
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2a0]
add al, 0x9c
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 4
jb 0x40df40
lea eax, [esp + 0x18]
push eax
push esi
call fcn.00403740
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4453e4]
call fcn.00435c70
movzx eax, al
jmp dword [eax*4 + 0x4453ec]
mov word [esp + 0x2a0], 0xe9e9
mov byte [esp + 0x2a2], 0x4c
mov word [esp + 0x2a3], 0
mov byte [esp + 0x2a5], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 5
ja 0x40e02f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x2a0]
add eax, 0xde4d90f5
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x45
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 6
jb 0x40dff0
lea eax, [esp + 0x2a0]
push eax
mov dword [esp + 0x9c], esi
push esi
call fcn.00403740
add esp, 8
mov dword [esp + 0xa0], eax
mov word [esp + 0x2a0], 0x8190
mov byte [esp + 0x2a2], 0x25
mov dword [esp + 0x2a3], 0
mov byte [esp + 0x2a7], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja 0x40e0e4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x2a0]
lea edx, [eax + 0x1288ed85]
lea esi, [eax + ecx]
add esi, 0x1288ed85
add eax, 0x85
or eax, edx
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0xb8], esi
mov eax, dword [esp + 0xb8]
add al, 0x5e
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb 0x40e090
lea eax, [esp + 0x2a0]
push eax
mov esi, dword [esp + 0x9c]
push esi
call fcn.00403740
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xac], ecx
push esi
call fcn.0040ee60
add esp, 4
push ebx
call fcn.00403ba0
add esp, 4
lea esi, [esp + 0x1b8]
mov ecx, esi
push 1
call fcn.0040a4f0
push esi
call fcn.0041d050
add esp, 4
mov ecx, esi
call fcn.0040ada0
lea esi, [esp + 0xc40]
mov ecx, esi
push 3
call fcn.0040a4f0
push esi
call fcn.0041d770
add esp, 4
mov ecx, esi
call fcn.0040ada0
lea esi, [esp + 0xbd8]
mov ecx, esi
push 1
call fcn.0040a4f0
push esi
call fcn.0041da10
add esp, 4
mov ecx, esi
call fcn.0040ada0
lea ebx, [esp + 0xb70]
mov ecx, ebx
push 1
call fcn.0040a4f0
push ebx
call fcn.0041f700
add esp, 4
push ebx
call fcn.004201f0
add esp, 4
push ebx
call fcn.00420640
add esp, 4
push ebx
call fcn.004233a0
add esp, 4
mov ecx, ebx
call fcn.0040ada0
lea esi, [esp + 0xb08]
mov ecx, esi
push 1
call fcn.0040a4f0
push esi
call fcn.004224b0
add esp, 4
mov ecx, esi
call fcn.0040ada0
lea ebx, [esp + 0xaa0]
mov ecx, ebx
push 1
call fcn.0040a4f0
push ebx
call fcn.00427b50
add esp, 4
push ebx
call fcn.00431580
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x4453f4]
jmp dword [0x4453fc]
push ebx
call fcn.00403ba0
add esp, 4
xor eax, eax
jmp case.0x40dee6.1
push ebx
call fcn.00409da0
add esp, 4
push esi
call fcn.00411b60
add esp, 4
push esi
call fcn.00403ba0
add esp, 4
mov ebx, edi
mov esi, dword [esp + 0x98]
jmp dword [0x445424]
push ebx
call fcn.00424fb0
add esp, 4
push ebx
call fcn.00424fb0
add esp, 4
jmp dword [0x445408]
lea ecx, [esp + 0xaa0]
call fcn.0040ada0
mov dword [esp + 0x18], 0x5a495516
mov word [esp + 0x1c], 0xc24
mov byte [esp + 0x1e], 0xc6
mov word [esp + 0x1f], 0
mov byte [esp + 0x21], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 9
ja 0x40e303
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + ecx]
add eax, 0x16
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xd6389716
mov dword [esp + 0x2a0], edx
mov eax, dword [esp + 0x2a0]
add al, 0x26
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
jb 0x40e2b0
mov eax, dword [0x4448e4]
mov dword [esp], 0xb7f32fe8
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 3
lea ebx, [esp + 0x2a0]
ja 0x40e378
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx]
add ecx, 0xdead5689
xor ecx, edx
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a0]
add cl, 0xc5
mov edx, dword [esp + 0xb8]
mov byte [esp + edx], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 4
jb 0x40e330
mov ecx, dword [str.c2CoW0__DOMOVOY]
mov dword [esp + 0x2a0], 0xc6021217
mov dword [esp + 0x2a4], 0x2c3e2c31
mov dword [esp + 0x2a8], 0x343b2833
mov dword [esp + 0x2ac], 0xe3253a23
mov dword [esp + 0x2b0], 0xd6342032
mov dword [esp + 0x2b4], 0xfbeae5ec
mov dword [esp + 0x2b8], 0xde3a2420
mov byte [esp + 0x2bc], 0x90
mov dword [esp + 0x2bd], 0
mov dword [esp + 0x2c0], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x23
ja 0x40e441
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x2a0]
add edx, 0x4dca371d
xor edx, esi
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xb8]
add dl, 0x57
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x2a0], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x24
jb 0x40e400
movzx edx, byte [esp + 0x2a0]
test dl, dl
je 0x40e46b
lea edi, [esp + 0xb8]
lea esi, [esp + 0x2a1]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e460
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e48b
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 0x40e480
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40e4ab
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e4a0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e4cb
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 0x40e4c0
mov byte [edi], 0
movzx eax, byte [esp + 0x18]
test al, al
je 0x40e4eb
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e4e0
mov byte [edi], 0
movzx eax, byte [0x4499cc]
test al, al
je 0x40e511
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [ecx + 0x4499cd]
inc ecx
test al, al
jne 0x40e500
add edi, ecx
mov byte [edi], 0
mov dword [esp + 0x2a0], 0x76c27034
mov dword [esp + 0x2a4], 0x4ac174c5
mov dword [esp + 0x2a8], 0x4efb48ee
mov dword [esp + 0x2ac], 0x42304cfb
mov dword [esp + 0x2b0], 0x46c84017
mov dword [esp + 0x2b4], 0x5ae044f7
mov dword [esp + 0x2b8], 0x5e395815
mov dword [esp + 0x2bc], 0x52ed5cfe
mov dword [esp + 0x2c0], 0x56ed50e3
mov dword [esp + 0x2c4], 0xaaf254ee
mov dword [esp + 0x2c8], 0xae1da80a
mov dword [esp + 0x2cc], 0xa21eac16
mov dword [esp + 0x2d0], 0xa6d2a011
mov dword [esp + 0x2d4], 0xbad8a42f
mov dword [esp + 0x2d8], 0xbe32b830
mov dword [esp + 0x2dc], 0xb2c0bc34
mov dword [esp + 0x2e0], 0xb602b009
mov dword [esp + 0x2e4], 0x8a08b401
mov dword [esp + 0x2e8], 0x8e3c88f6
mov dword [esp + 0x2ec], 0x82318c39
mov dword [esp + 0x2f0], 0x86338026
mov dword [esp + 0x2f4], 0x9a368420
mov dword [esp + 0x2f8], 0x9e3c983f
mov dword [esp + 0x2fc], 0x92809c3b
mov dword [esp + 0x300], 0x9691908d
mov byte [esp + 0x306], 0
mov word [esp + 0x304], 0
lea eax, [esp + 0xb8]
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x66
ja 0x40e69b
nop
nop
nop
nop
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 + 0x2a0]
add ecx, 0x570c8b59
xor ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xd6
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x2a0], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x67
jb 0x40e660
sub edi, eax
mov dword [esp + 0x18], 0x7a70173
mov dword [esp + 0x1c], 0x1bbb05b6
mov dword [esp + 0x20], 0x191a
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x40e717
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x18]
lea edx, [ecx + esi]
add edx, 0x5c8bb729
add ecx, 0x5c8bb729
and ecx, esi
mov esi, edx
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xd5
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x40e6d0
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xa4]
push ecx
push edx
push edi
push eax
push ebx
lea eax, [esp + 0x2c]
push eax
push 0x449a2c
call fcn.0040c7c0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44540c]
mov edi, ebx
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x445414]
push ebx
call fcn.00402b60
add esp, 4
mov esi, eax
jmp dword [0x44541c]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e790
cmp edx, 0x2e
jne 0x40e791
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je case.default.0x40e7d2
cmp ecx, 0x2e
jne 0x40e7a5
mov edi, ebx
dec eax
jmp 0x40e7a7
mov edi, ebx
push eax
call fcn.00409d90
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.004376d0
add esp, 8
push dword [esp + 0xa4]
call fcn.0043a960
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x445414]
mov ebx, edi
mov esi, dword [esp + 0x98]
jmp dword [0x445424]
mov dword [esp + 4], 0x7b1d1b1c
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 3
ja 0x40e849
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x866f1a68
xor eax, ecx
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2a0]
add al, 0xf0
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x40e810
lea eax, [esp + 4]
push eax
push esi
call fcn.00403740
add esp, 8
jmp case.0x40e7d2.4
lea edi, [esp + 4]
push edi
push esi
call fcn.00403740
add esp, 8
jmp dword [0x44542c]
mov dword [esp + 4], 0x7b1d1b1c
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 3
ja 0x40e860
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x866f1a68
xor eax, ecx
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2a0]
add al, 0xf0
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x40e890
jmp 0x40e860
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x445434]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x44544c]
lea ecx, [esp + 0x2a0]
push 1
call fcn.0040a4f0
jmp dword [0x44543c]
mov eax, 0x449d34
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x40e910
mov dword [esp + 0x18], 0xf5010725
mov dword [esp + 0x1c], 0xeef33afc
mov word [esp + 0x20], 0x980d
mov dword [esp + 0x22], 0
mov word [esp + 0x26], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja case.0x40e7d2.10
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0xc83b2078
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xe7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40e950
jmp case.0x40e7d2.10
jmp dword [0x445448]
mov eax, 0xffffffff
lea ecx, [esp + 0x22]
nop
cmp byte [eax + 0x449d35], 0
lea eax, [eax + 1]
jne 0x40e990
mov dword [esp + 0x18], 0xf5010725
mov dword [esp + 0x1c], 0xeef33afc
mov word [esp + 0x20], 0x980d
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x40e980
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x18]
add ecx, 0xc83b2078
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xe7
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x40e9d0
jmp 0x40e980
lea ecx, [esp + 0x2a0]
push eax
push 0x449d34
lea eax, [esp + 0x20]
push eax
call fcn.0040a6f0
lea esi, [esp + 0x2a0]
mov ecx, esi
call fcn.0040ada0
mov ecx, esi
call fcn.0040a530
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x44544c]
push 0
call fcn.0043e120
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445454]
mov dword [esp + 0x18], 0x78ee7ad2
mov dword [esp + 0x1c], 0x64b566d5
mov dword [esp + 0x20], 0x60fb62c8
mov dword [esp + 0x24], 0x6c8f6ecc
mov dword [esp + 0x28], 0x68f46a83
mov dword [esp + 0x2c], 0x54f656f5
mov dword [esp + 0x30], 0x50cf52cb
mov dword [esp + 0x34], 0x5c8c5eb1
mov dword [esp + 0x38], 0x58f25ac8
mov dword [esp + 0x3c], 0x44a746cb
mov dword [esp + 0x40], 0x40d642ea
mov dword [esp + 0x44], 0x4c9d4eed
mov dword [esp + 0x48], 0x48d34ae0
mov dword [esp + 0x4c], 0x34d736e4
mov dword [esp + 0x50], 0x30e032db
mov dword [esp + 0x54], 0x3cdf3e9e
mov dword [esp + 0x58], 0x38923aa1
mov dword [esp + 0x5c], 0x248a26ac
mov dword [esp + 0x60], 0x20be22b6
mov dword [esp + 0x64], 0x2ccf2ebd
mov dword [esp + 0x68], 0x28b72afe
mov dword [esp + 0x6c], 0x14c816c9
mov dword [esp + 0x70], 0x10c012f5
mov dword [esp + 0x74], 0x1c8c1e83
mov dword [esp + 0x78], 0x18851ab3
mov dword [esp + 0x7c], 0x4a606b4
mov dword [esp + 0x80], 0xe30292
mov dword [esp + 0x84], 0xcef0eeb
mov dword [esp + 0x88], 0x8a60aa1
mov dword [esp + 0x8c], 0xf417f69d
mov dword [esp + 0x90], 0xf0f3f21b
mov byte [esp + 0x96], 0
mov word [esp + 0x94], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x7e
ja 0x40ebcb
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
add ecx, 0xb391210b
xor ecx, edx
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a0]
add cl, 0x8a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x7f
jb 0x40eb90
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x40ebf1
lea ebx, [esp + 0x2a0]
lea edx, [esp + 0x1a]
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40ebe0
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x40ec21
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40ec10
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 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], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x44
mov dword [esp + 0x44], 1
push 0xc9be8534
push dword [0x44ad34]
call fcn.0043e210
add esp, 8
lea ecx, [esp + 0x2a0]
push edi
lea edx, [esp + 0x1c]
push edx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push ecx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44545c]
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], 0x1211102f
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 3
ja 0x40ed59
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x9c]
add ecx, 0x8c3888df
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xf
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x9c], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 4
jb 0x40ed20
mov ecx, dword [0x44ad40]
test ecx, ecx
je case.0x40e7d2.18
mov edx, dword [esp + 0x9c]
xor esi, esi
mov edi, dword [0x44ad44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40ed90
inc esi
cmp ecx, esi
jne 0x40ed80
jmp case.0x40e7d2.18
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e7d2.18
push eax
push 1
push dword [0x44ad48]
push ecx
call fcn.0043cab0
add esp, 0x10
mov eax, dword [case.0x40e7d2.14]
nop
jmp eax
jmp dword [0x445478]
lea ecx, [esp + 0xaa0]
call fcn.0040a530
lea ecx, [esp + 0xb08]
call fcn.0040a530
lea ecx, [esp + 0xb70]
call fcn.0040a530
lea ecx, [esp + 0xbd8]
call fcn.0040a530
lea ecx, [esp + 0xc40]
call fcn.0040a530
lea ecx, [esp + 0x1b8]
call fcn.0040a530
lea ecx, [esp + 0xaa0]
call fcn.0040a530
lea ecx, [esp + 0xb08]
call fcn.0040a530
lea ecx, [esp + 0xb70]
call fcn.0040a530
lea ecx, [esp + 0xbd8]
call fcn.0040a530
lea ecx, [esp + 0xc40]
call fcn.0040a530
lea ecx, [esp + 0x1b8]
call fcn.0040a530
mov al, 1
jmp dword [0x44547c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
mov dword [esp + 0x44], esi
jmp dword [0x44549c]
push esi
call fcn.00403b60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00403b60
add esp, 4
jmp dword [0x4454a8]
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4454ac]
push edi
push esi
call fcn.00403b70
add esp, 8
mov dword [esp + 4], eax
mov dword [esp + 8], 0x9419
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 3
ja 0x40efa9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x7ac330da
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xb1
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 4
jb 0x40ef70
push 3
lea eax, [esp + 0xc]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4454b4]
mov word [esp + 0xa0], 0xaf5a
lea eax, [esp + 0xa2]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40f044
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
lea edx, [eax + ecx]
add eax, 0x66
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x46391a66
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x54]
add al, 0x38
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40f000
push ebx
push dword [esp + 8]
call fcn.004034e0
add esp, 8
fnstcw word [esp + 0x10e]
movzx eax, word [esp + 0x10e]
or eax, 0xc00
mov word [esp + 0x11e], ax
fldcw word [esp + 0x11e]
fistp dword [esp + 0x138]
fldcw word [esp + 0x10e]
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4454bc]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4454c4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4454cc]
mov word [esp + 0xa0], 0xab45
mov dword [esp + 0xa2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x40f119
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x20a9fc6e
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x3c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40f0e0
push 2
push ebx
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44554c]
mov dword [esp + 0x24], 0x903f
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 3
ja 0x40f183
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x403816f
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x20
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 4
jb 0x40f150
push 2
lea eax, [esp + 0x28]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445554]
mov word [esp + 0x54], 0x9d0d
mov dword [esp + 0x56], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 5
ja 0x40f203
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x54]
add eax, 0xbf9ae1a9
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xc9
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x54], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 6
jb 0x40f1d0
push 5
lea eax, [esp + 0x58]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44555c]
mov word [esp + 8], 0xccb7
lea eax, [esp + 0xa]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 7
ja 0x40f283
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xb84484c
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x7f
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 8
jb 0x40f250
push 2
lea eax, [esp + 0xc]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445564]
mov word [esp + 0x3c], 0x11ba
lea eax, [esp + 0x3d]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 6
ja 0x40f303
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xcd5809e7
xor eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 7
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 7
jb 0x40f2d0
push 3
lea eax, [esp + 0x40]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44556c]
inc edi
jmp dword [0x44549c]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4454d4]
mov word [esp + 0xa0], 0x2695
lea eax, [esp + 0xa2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40f3a9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x25e9f101
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0xdc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40f370
push ebx
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0xa0], 0x73ca
lea eax, [esp + 0xa2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40f429
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xf636e51
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0xdf
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40f3f0
push ebx
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov edx, dword [esp + 0x1c]
test edx, edx
sete ch
test eax, eax
sete cl
or cl, ch
movzx ecx, cl
jmp dword [ecx*4 + 0x44564c]
mov dword [esp + 0x2c], edi
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x40f460
mov dword [esp + 4], eax
xor esi, esi
cmp edi, edx
jbe 0x40f4ad
cmp byte [edx], 0
je 0x40f4ad
xor esi, esi
mov ebx, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0xa0], 0
lea eax, [esp + 0xa0]
push eax
push edi
push ebx
call fcn.0040d860
add esp, 0xc
inc esi
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x40f4ad
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f480
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40f4bb
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
jae 0x40f95d
mov esi, dword [esp + 0x20]
cmp ebx, edi
jae 0x40f95d
mov esi, dword [esp + 0x20]
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f95d
lea eax, [esp + 0xa0]
push eax
push edi
push ebx
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x40f959
add ebx, eax
cmp ebx, edi
mov eax, dword [esp + 4]
jb 0x40f500
jmp 0x40f95d
mov dword [esp + 8], 0x35a4
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 3
ja 0x40f5a2
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x6a]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xf2f8396a
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xa2
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 4
jb 0x40f560
lea eax, [esp + 8]
push eax
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 8], 0x61fe
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 3
ja 0x40f609
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x94221f32
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0xae
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 4
jb case.default.0x40f62d
lea eax, [esp + 8]
push eax
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov edx, dword [esp + 0x1c]
test edx, edx
sete ch
test eax, eax
sete cl
or cl, ch
movzx ecx, cl
jmp dword [ecx*4 + 0x445714]
mov dword [esp + 0x2c], edi
mov ecx, edx
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x40f640
mov dword [esp + 0x18], eax
xor ebx, ebx
cmp edi, edx
jbe 0x40f68d
cmp byte [edx], 0
je 0x40f68d
xor ebx, ebx
mov esi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0xa0], 0
lea eax, [esp + 0xa0]
push eax
push edi
push esi
call fcn.0040d860
add esp, 0xc
inc ebx
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x40f68d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40f660
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40f69b
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 4], ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jae 0x410109
mov ebx, dword [esp + 0x50]
cmp esi, edi
jae 0x410109
mov ebx, dword [esp + 0x50]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x410109
lea eax, [esp + 0xa0]
push eax
push edi
push esi
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 4]
jae 0x410105
add esi, eax
cmp esi, edi
mov eax, dword [esp + 0x18]
jb 0x40f6e0
jmp 0x410109
sete al
movzx eax, al
jmp dword [eax*4 + 0x4454dc]
mov eax, dword [case.0x40f62d.1]
jmp eax
inc edi
jmp dword [0x44549c]
mov eax, dword [esp + 4]
mov word [esi], 0
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40f970
xor esi, esi
cmp eax, edi
jae 0x40f9bd
cmp byte [eax], 0
je 0x40f9bd
xor esi, esi
mov ebx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xa0], 0
lea eax, [esp + 0xa0]
push eax
push edi
push ebx
call fcn.0040d860
add esp, 0xc
inc esi
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x40f9bd
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f990
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40f9cb
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ebx, dword [esp + 4]
jae 0x40fa31
mov esi, dword [esp + 0x38]
cmp ebx, edi
jae 0x40fa31
mov esi, dword [esp + 0x38]
cmp byte [ebx], 0
je 0x40fa31
lea eax, [esp + 0xa0]
push eax
push edi
push ebx
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x40fa31
add ebx, eax
cmp ebx, edi
jb 0x40fa00
mov word [esi], 0
mov word [esp + 0xa0], 0xd2c4
mov byte [esp + 0xa2], 0x55
mov word [esp + 0xa3], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x40faa9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xe8433b86
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x23
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x40fa70
lea eax, [esp + 0xa0]
push eax
push dword [ebp + 8]
call fcn.00403610
add esp, 8
xor ecx, ecx
mov dword [esp + 0x1c], eax
test eax, eax
setne cl
xor esi, esi
mov dword [esp + 0x18], 0
jmp dword [ecx*4 + 0x445664]
lea ebx, [esp + 0xa0]
mov ecx, ebx
push 2
call fcn.0040a4f0
push esi
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x40]
push dword [esp + 0x2c]
push ebx
call fcn.00413b10
add esp, 0x14
mov ecx, ebx
call fcn.0040ada0
movzx eax, al
jmp dword [eax*4 + 0x4456a4]
push dword [esp + 0x1c]
call fcn.00403b60
add esp, 4
mov dword [esp + 0x28], eax
mov ecx, 0xc
mul ecx
seto cl
mov esi, 0xffffffff
mov edx, 0xffffffff
add eax, 4
jb 0x40fb64
mov edx, eax
test cl, cl
jne 0x40fb6a
mov esi, edx
mov edi, dword [0x445678]
push esi
call fcn.00409d90
add esp, 4
jmp edi
mov eax, dword [esp + 0x18]
mov word [ebx], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x410120
lea eax, [edi + 2]
test esi, esi
jns 0x410138
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
add edi, eax
mov dword [esp + 4], eax
mov dword [esp + 0x48], eax
cmp eax, edi
mov ecx, dword [esp + 0x18]
jae 0x4101bb
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
cmp ecx, ebx
jae 0x4101bb
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4101bb
lea eax, [esp + 0xa0]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov edx, dword [esp + 4]
mov word [edx], cx
add edx, 2
mov dword [esp + 4], edx
cmp edx, edi
jae 0x4101bb
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x410180
mov eax, dword [esp + 4]
mov word [eax], 0
mov word [esp + 0xa0], 0xfde9
mov byte [esp + 0xa2], 0x86
lea eax, [esp + 0xa2]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x410239
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x3faa904
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x80
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x410200
lea ebx, [esp + 0xa0]
push ebx
push dword [ebp + 8]
call fcn.00403610
add esp, 8
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp dword [ecx*4 + 0x44571c]
mov ecx, ebx
push 3
call fcn.0040a4f0
push dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
push esi
push dword [esp + 0x50]
push dword [esp + 0x5c]
push ebx
call fcn.00415f60
add esp, 0x14
mov ecx, ebx
call fcn.0040ada0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44573c]
mov edx, esi
add esi, 0xfffffffc
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445744]
jmp dword [0x445754]
add edi, 0xfffffff4
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x44574c]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x4102d0
push eax
call fcn.00409da0
mov edx, dword [esp + 0x2c]
add esp, 4
jmp 0x4102d0
push dword [esp + 0x38]
call fcn.00403b60
add esp, 4
mov ecx, eax
mov dword [esp + 0x20], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x410324
mov esi, eax
test dl, dl
jne 0x41032a
mov ecx, esi
push ecx
call fcn.00409d90
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x28], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445724]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x44572c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x44572c]
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x445734]
lea ebx, [esp + 0xa0]
mov word [edx], 0
mov edi, dword [esp + 0x18]
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
xor eax, eax
cmp edi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x445734]
push edi
push dword [esp + 0x3c]
call fcn.00403b70
add esp, 8
mov esi, eax
mov word [esp + 0xa0], 0x7870
mov byte [esp + 0xa2], 0xe9
lea eax, [esp + 0xa2]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x410479
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xf99afa74
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x61
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x410440
push ebx
push esi
call fcn.004033b0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0xa0], 0xa4b8
mov byte [esp + 0xa2], 0x21
mov word [esp + 0xa3], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x4104f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xff4aebbc
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x61
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x4104c0
push ebx
push esi
call fcn.004033b0
add esp, 8
mov dword [esp + 4], eax
mov word [esp + 0xa0], 0x988e
mov byte [esp + 0xa2], 0x2d
mov word [esp + 0xa3], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x410579
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x7cb654b
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0xa0
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x410540
push ebx
push esi
call fcn.004033b0
add esp, 8
mov dword [esp + 0x18], edi
lea ecx, [edi + edi*2]
mov edx, dword [esp + 0x28]
mov dword [edx + ecx*4], 0
mov esi, dword [esp + 0x1c]
mov dword [edx + ecx*4 + 4], esi
lea esi, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esp + 4]
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x4105b0
test ebx, ebx
jns 0x4105d0
mov eax, 0xffffffff
jmp 0x4105d3
lea eax, [edi + 2]
push eax
call fcn.00409d90
add esp, 4
mov edx, eax
mov dword [esi], eax
mov eax, dword [esp + 4]
lea esi, [eax + ebx]
dec esi
mov dword [esp + 0xa0], 0
cmp esi, eax
jbe 0x4103d0
add edi, edx
cmp edx, edi
lea ebx, [esp + 0xa0]
jae 0x4103d7
nop
nop
nop
nop
cmp byte [eax], 0
je 0x4103d7
push ebx
push esi
push eax
mov ebx, eax
mov dword [esp + 0x10], edx
call fcn.0040d860
mov edx, dword [esp + 0x10]
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4103d0
add ebx, eax
cmp ebx, esi
mov eax, ebx
lea ebx, [esp + 0xa0]
jb 0x410610
jmp 0x4103d7
mov dword [esp + 0x118], 0x60ecf8
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 3
ja 0x410bb6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + ecx]
add eax, 0xdd
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xf8afabdd
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x41
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 4
jb 0x410b70
push 3
lea eax, [esp + 0x11c]
push eax
push dword [esp + 0xc]
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x2c], edi
jmp dword [ecx*4 + 0x445574]
mov dword [esp + 8], 0x5fc1
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 3
ja 0x410c39
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xde0e6123
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0x85
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 4
jb 0x410c00
lea eax, [esp + 8]
push eax
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0xa0], 0xb817
lea eax, [esp + 0xa2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x410cb9
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x41c4054f
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x18
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x410c80
push ebx
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0xa0], 0x1b8f
lea eax, [esp + 0xa2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x410d39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0xa13880ce
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x2c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x410d00
push ebx
push dword [esp + 8]
call fcn.00403610
add esp, 8
mov esi, eax
mov word [esp + 0xa0], 0xc84d
lea eax, [esp + 0xa2]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x410dc4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
lea edx, [eax + ecx]
add eax, 0x7d
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xb732ab7d
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x54]
add al, 0x4a
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x410d80
push ebx
push dword [esp + 8]
call fcn.004033b0
add esp, 8
mov dword [esp + 0x108], eax
mov word [esp + 0xa0], 0x318a
lea eax, [esp + 0xa2]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x410e49
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x68ee235b
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add al, 0x93
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x410e10
mov dword [esp + 0x38], esi
push ebx
push dword [esp + 8]
call fcn.004034e0
add esp, 8
mov dword [esp + 8], 0x27a993
fnstcw word [esp + 0x116]
movzx eax, word [esp + 0x116]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x12c]
fldcw word [esp + 0x116]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 3
ja 0x410ee9
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x703795c7
xor eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
add al, 0x12
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 4
jb 0x410eb0
lea eax, [esp + 8]
push eax
push dword [esp + 8]
call fcn.004034e0
add esp, 8
fnstcw word [esp + 0x114]
movzx eax, word [esp + 0x114]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x128]
fldcw word [esp + 0x114]
mov eax, dword [esp + 0x128]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
jmp dword [0x44557c]
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410f50
mov esi, ebx
sub esi, dword [esp + 0x18]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x410f6c
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
lea ecx, [eax + esi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
cmp eax, ecx
jae 0x410fd4
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x18], ebx
jae 0x410fd4
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
cmp byte [esi], 0
je 0x410fd4
lea eax, [esp + 0xa0]
push eax
push ebx
push esi
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 4]
jae 0x410fd4
add esi, eax
cmp esi, ebx
jb 0x410fa3
mov word [edi], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x54]
push dword [esp + 0x1c]
call fcn.0043aa10
mov eax, dword [esp + 0x18]
jmp case.0x410bd7.2
mov word [edi], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x54]
mov esi, dword [esp + 0x1c]
push esi
call fcn.0043aa10
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
jmp dword [0x445588]
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x410bd7.2
mov esi, ebx
sub esi, dword [esp + 0x18]
mov eax, esi
inc eax
jns 0x411063
mov eax, 0xffffffff
jmp 0x41106a
lea eax, [esi*2 + 2]
push eax
call fcn.00409d90
add esp, 4
mov dword [esp + 0xa0], 0
lea ecx, [eax + esi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
cmp eax, ecx
jae 0x411010
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x18], ebx
jae 0x411010
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x411010
lea eax, [esp + 0xa0]
push eax
push ebx
push esi
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esp + 0xa0]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 4]
jae 0x411010
add esi, eax
cmp esi, ebx
jb 0x4110b0
jmp 0x411010
call fcn.00409da0
add esp, 4
jmp case.0x4103f4.20
mov esi, dword [esp + 0x44]
jmp dword [0x44577c]
push dword [esp + 0x48]
jmp 0x4115cd
mov edi, dword [esp + 0x2c]
jmp dword [0x445774]
push dword [esp + 0x50]
call fcn.00409da0
add esp, 4
mov esi, dword [esp + 0x44]
jmp dword [0x44577c]
mov ecx, ebx
call fcn.0040a530
inc edi
jmp dword [0x44549c]
jmp dword [0x445770]
push esi
call fcn.00409da0
add esp, 4
push esi
call fcn.00409da0
add esp, 4
jmp dword [0x445760]
mov ecx, dword [case.0x40e7d2.33]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x6c]
add eax, 2
mov dword [esi + 0x8c], eax
add dword [esi + 0x7c], 2
mov eax, edi
add eax, 2
mov dword [esi + 0xa8], eax
mov edx, dword [esi + 0x80]
mov eax, edx
add eax, 0x32
mov dword [esi + 0xac], eax
mov ecx, dword [esi + 0x68]
mov eax, ecx
add eax, 0x3a
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x74]
mov ebx, eax
add ebx, 0x12
mov dword [esi + 0xa0], ebx
mov ebx, dword [esi + 0x70]
add ebx, 0xa
mov dword [esi + 0x90], ebx
mov ebx, dword [esi + 0x78]
add ebx, 0xa
mov dword [esi + 0x9c], ebx
add dword [esi + 0x84], 2
add edx, 2
mov dword [esi + 0xa4], edx
add ecx, 2
mov dword [esi + 0x88], ecx
add eax, 2
mov dword [esi + 0x98], eax
mov dword [esi + 0xb0], edi
mov edi, dword [esi + 0x1c]
jmp dword [0x445790]
push edi
call fcn.00403b60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00403b60
add esp, 4
jmp dword [0x445794]
xor ecx, ecx
mov edx, dword [esi + 0x18]
cmp edx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44579c]
push edx
mov edi, dword [esi + 0x1c]
push edi
call fcn.00403b70
add esp, 8
mov ebx, eax
mov dword [esi + 0x4c], 0x9a10
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 3
ja 0x411d72
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [esi + ecx + 0x4c]
add eax, 0xfcdb8704
xor eax, ecx
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xe0]
add al, 0x61
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0x4c], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 4
jb 0x411d40
lea eax, [esi + 0x4c]
push 2
push eax
push ebx
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4457a4]
mov word [esi + 0xe0], 0x201d
mov byte [esi + 0xe2], 0xbd
mov word [esi + 0xe3], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 4
ja 0x411e03
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0xe0]
lea edi, [eax - 0x5fc484b9]
lea ecx, [eax + edx]
add ecx, 0xa03b7b47
add eax, 0x47
or eax, edi
and eax, edx
add eax, eax
sub ecx, eax
mov dword [esi], ecx
mov eax, dword [esi]
add al, 0xc
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0xe0], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 5
jb 0x411dc0
lea eax, [esi + 0xe0]
push 3
push eax
push ebx
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
jmp dword [ecx*4 + 0x4457ac]
inc dword [esi + 0x18]
jmp dword [0x445790]
mov word [esi + 4], 0xc56d
mov dword [esi + 6], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 5
ja 0x411e7a
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 4]
add eax, 0xbddddbf1
xor eax, ecx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xc9
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 4], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 6
jb 0x411e50
lea eax, [esi + 4]
push 3
push eax
push ebx
call fcn.00403a40
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4457b4]
mov dword [esi], 0x4d31
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 3
ja 0x411ee0
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [esi + ecx]
add eax, 0x26d66748
xor eax, ecx
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xe0]
add al, 0xfc
mov ecx, dword [esi + 4]
mov byte [esi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 4
jb 0x411eb0
mov eax, esi
push eax
push ebx
call fcn.004033b0
add esp, 8
mov edi, eax
mov dword [esi], 0x788390
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 3
ja 0x411f4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx]
lea ecx, [eax + edx]
add eax, 0xb6
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x77adb6
mov dword [esi + 0xe0], ecx
mov eax, dword [esi + 0xe0]
add al, 0x40
mov ecx, dword [esi + 4]
mov byte [esi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 4
jb 0x411f10
mov eax, esi
push eax
push ebx
call fcn.004034e0
add esp, 8
mov dword [esi], 0xf743
fnstcw word [esi + 0x3e]
movzx eax, word [esi + 0x3e]
or eax, 0xc00
mov word [esi + 0x52], ax
fldcw word [esi + 0x52]
fistp dword [esi + 0xdc]
fldcw word [esi + 0x3e]
mov eax, dword [esi + 0xdc]
mov dword [esi + 0x24], eax
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 3
ja 0x411fd0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [esi + ecx]
add eax, 0x3e6fc70f
xor eax, ecx
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xe0]
add al, 0x19
mov ecx, dword [esi + 4]
mov byte [esi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 4
jb 0x411fa0
mov eax, esi
push eax
push ebx
call fcn.004034e0
add esp, 8
mov edx, edi
dec edi
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x411fe0
fnstcw word [esi + 0x3c]
movzx eax, word [esi + 0x3c]
or eax, 0xc00
mov word [esi + 0x50], ax
fldcw word [esi + 0x50]
fistp dword [esi + 0xd8]
fldcw word [esi + 0x3c]
mov eax, dword [esi + 0xd8]
mov dword [esi + 0x14], eax
mov dword [esi + 4], 0
lea eax, [esi + 0xe0]
cmp edx, edi
jae 0x412086
mov dword [esi + 0x20], ebx
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x41207b
lea eax, [esi + 4]
push eax
push edi
push edx
mov dword [esi + 0xc], edx
call fcn.0040d860
add esp, 0xc
lea ecx, [ebx + 2]
movzx edx, word [esi + 4]
mov word [esi + ebx + 0xe0], dx
mov edx, dword [esi + 0xc]
cmp ebx, 0x7fb
ja 0x412068
add edx, eax
mov ebx, ecx
cmp edx, edi
jb 0x412030
lea eax, [esi + ecx]
add eax, 0xe0
jmp 0x412083
inc dword [esi + 0x18]
jmp dword [0x445790]
lea eax, [esi + ebx]
add eax, 0xe0
mov ebx, dword [esi + 0x20]
mov word [eax], 0
push dword [esi + 0x44]
push dword [esi + 0x28]
lea eax, [esi + 0xe0]
push eax
call fcn.0040c0d0
add esp, 0xc
movzx eax, al
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [eax*4 + 0x4457bc]
inc edx
mov dword [esi + 0x18], edx
jmp dword [0x445790]
xor eax, eax
mov edi, dword [esi + 0x14]
test edi, edi
sete al
mov dword [esi + 0xc4], eax
jmp dword [eax*4 + 0x4457c4]
xor edi, 1
mov ecx, dword [esi + 0x24]
xor ecx, 2
xor eax, eax
or ecx, edi
sete al
mov dword [esi + 0xc], 0
xor ebx, ebx
jmp dword [eax*4 + 0x44587c]
mov eax, dword [esi + 0x28]
mov ebx, dword [eax]
movzx eax, byte [ebx]
xor edi, edi
test al, al
je 0x412121
lea ecx, [ebx + 1]
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
shr al, 7
movzx eax, al
add edi, eax
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x412110
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41212f
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x44]
mov edx, dword [eax]
mov dword [esi + 4], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], eax
cmp ecx, eax
mov dword [esi + 0x20], ecx
jae 0x4121a2
mov dword [esi + 0xc], ecx
test edx, edx
jle 0x4121a2
add edx, ebx
mov dword [esi + 0xc], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4121a2
lea eax, [esi + 4]
push eax
push edx
push ebx
mov edi, edx
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esi + 4]
mov edx, dword [esi + 0xc]
mov word [edx], cx
add edx, 2
mov dword [esi + 0xc], edx
cmp edx, dword [esi + 0x14]
jae 0x4121a2
add ebx, eax
cmp ebx, edi
mov edx, edi
jb 0x412170
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x4121c0
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov edx, dword [esi + 0x80]
mov dword [edx], 0xca5ecc5f
mov dword [edx + 4], 0x3664c850
mov dword [edx + 8], 0x32aa34a9
mov dword [edx + 0xc], 0x3e9c309b
mov dword [edx + 0x10], 0x3aa93cab
mov dword [edx + 0x14], 0x266c385b
mov dword [edx + 0x18], 0x22bd248a
mov dword [edx + 0x1c], 0x2e8e208e
mov dword [edx + 0x20], 0x2a832c4f
mov dword [edx + 0x24], 0x16b928b2
mov dword [edx + 0x28], 0x128a14b6
mov dword [edx + 0x2c], 0x1e71108c
mov word [edx + 0x30], 0x1c1f
mov ecx, dword [esi + 0xac]
mov word [ecx], 0
mov byte [ecx + 2], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x34
ja 0x412277
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add ebx, 0xb5bbb6f9
xor ebx, ecx
mov dword [esi + 4], ebx
mov ebx, dword [esi + 4]
add bl, 0xca
mov ecx, dword [esi]
mov byte [edx + ecx], bl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x35
jb 0x412250
movzx ecx, word [edx]
mov ebx, eax
test cx, cx
je 0x4122a1
mov edx, dword [esi + 0xa4]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412290
mov word [ebx], 0
mov edx, dword [esi + 0x20]
movzx ecx, word [edx]
test cx, cx
je 0x4122d1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4122c0
mov dword [esi + 0xc], eax
mov word [ebx], 0
jmp dword [0x445884]
push dword [esi + 0x20]
call fcn.00409da0
add esp, 4
mov eax, dword [case.0x4134ff.0]
mov edx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp eax
mov edx, dword [esi + 0xd4]
mov word [edx], 0xe655
mov eax, dword [esi + 0x84]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x412355
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x6150e5c9
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xd4
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x412330
push edx
push ebx
call fcn.004033b0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x20], ebx
jmp dword [ecx*4 + 0x4457cc]
mov edx, dword [esi + 0xcc]
mov dword [edx], 0x47f9f6f5
mov word [edx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x4123b5
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x4025365d
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x58
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x412390
mov eax, dword [edx]
push dword [eax + 0x14]
call fcn.0040a440
add esp, 4
call fcn.0040a450
and eax, 0xf
or eax, 0x10
xor edi, edi
xor ecx, ecx
mov dword [esi + 0xc], eax
cmp edi, eax
setb cl
mov ebx, dword [esi + 0xc8]
jmp dword [ecx*4 + 0x4457ec]
call fcn.0040a450
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx + edi*2], ax
inc edi
xor eax, eax
cmp edi, dword [esi + 0xc]
setb al
jmp dword [eax*4 + 0x4457ec]
mov word [ebx + edi*2], 0
mov edi, dword [esi + 0xb0]
mov dword [edi], 0x3f60d29
mov dword [edi + 4], 0x7fb01c5
mov dword [edi + 8], 0x3b1f05f4
mov dword [edi + 0xc], 0x3f3e39d4
mov word [edi + 0x10], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
mov edx, ebx
ja 0x4124a2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0xd65cf2d6
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0xda
and eax, 0x25
add eax, eax
sub eax, ecx
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x412470
movzx eax, word [edi]
mov ebx, dword [esi + 0x40]
test ax, ax
je 0x4124d1
mov ecx, dword [esi + 0xa8]
mov ebx, dword [esi + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4124c0
mov word [ebx], 0
movzx eax, word [edx]
test ax, ax
je 0x412501
mov ecx, dword [esi + 0x7c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4124f0
mov word [ebx], 0
mov eax, dword [esi + 0x40]
sub ebx, eax
sar ebx, 1
mov edi, dword [esi + 0x60]
push edi
push 0
push 0
push ebx
push eax
push 0
call dword [0x44ad3c]
mov edi, dword [edi]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x412531
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
push dword [esi + 0x60]
push edi
mov dword [esi + 0x14], eax
push eax
push ebx
push dword [esi + 0x40]
push 0
call dword [0x44ad3c]
xor eax, eax
mov ecx, dword [esi + 0x24]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4457f4]
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x4457fc]
xor eax, eax
cmp ecx, 2
sete al
mov ebx, dword [esi + 0x14]
jmp dword [eax*4 + 0x445804]
jmp case.0x412369.3
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x412590
mov dword [esi + 0xc], 0
cmp ebx, eax
mov dword [esi + 0x30], eax
jbe 0x4125e7
cmp byte [eax], 0
je 0x4125e7
mov dword [esi + 0xc], 0
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push ebx
push edi
call fcn.0040d860
add esp, 0xc
inc dword [esi + 0xc]
lea ecx, [edi + eax]
cmp ecx, ebx
jae 0x4125e7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4125c0
mov ecx, dword [esi + 0xc]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x4125f8
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov edx, eax
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
lea eax, [edx + eax*2]
mov dword [esi + 0x14], edx
mov dword [esi + 0x38], eax
cmp edx, eax
mov edi, dword [esi + 0x30]
mov dword [esi + 0x2c], edx
jae 0x412850
mov dword [esi + 0x14], edx
cmp edi, ebx
jae 0x412850
mov dword [esi + 0x14], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412850
lea eax, [esi + 4]
push eax
push ebx
push edi
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esi + 4]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x38]
jae 0x41284d
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x2c]
jb 0x412640
jmp 0x412850
mov edi, dword [esi + 0x78]
mov dword [edi], 0xc0bac2f1
mov dword [edi + 4], 0xc4bec64f
mov word [edi + 8], 0xdadb
mov eax, dword [esi + 0x9c]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x4126d5
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x59f3e9c8
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf5
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x4126b0
mov ebx, dword [esi + 0x14]
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4126e0
movzx ecx, word [edi]
test cx, cx
je 0x412843
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x412700
jmp 0x412841
mov edi, dword [esi + 0x70]
mov dword [edi], 0x49d2770a
mov dword [edi + 4], 0x4df64bf4
mov word [edi + 8], 0x4f4c
mov eax, dword [esi + 0x90]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
mov ebx, dword [esi + 0x14]
ja 0x412775
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x4c1696dd
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x57
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x412750
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412780
movzx ecx, word [edi]
test cx, cx
je 0x412843
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x4127a0
jmp 0x412841
mov edi, dword [esi + 0xb4]
mov dword [edi], 0x26b720f3
mov dword [edi + 4], 0x2afc24b0
mov dword [edi + 8], 0x2829
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x412805
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x9affbf72
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xad
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x4127e0
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412810
movzx ecx, word [edi]
test cx, cx
je 0x412843
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x412830
add eax, edx
mov word [eax], 0
jmp case.0x412369.3
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0x14]
mov word [eax], 0
mov edi, dword [esi + 0x64]
push edi
push 0
push 0
push dword [esi + 0xc]
push edx
push 0
call dword [0x44ad3c]
mov edi, dword [edi]
lea eax, [edi + edi]
test edi, edi
jns 0x41287a
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov ebx, eax
push dword [esi + 0x64]
push edi
push eax
push dword [esi + 0xc]
mov edi, dword [esi + 0x2c]
push edi
push 0
call dword [0x44ad3c]
jmp dword [0x4457d4]
jmp dword [0x4457e0]
xor ebx, ebx
xor eax, eax
jmp dword [0x445824]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x14]
jmp dword [eax*4 + 0x445874]
xor eax, eax
mov ecx, dword [esi + 0x24]
test ecx, ecx
setle al
mov dword [esi + 0x14], ebx
jmp dword [eax*4 + 0x44589c]
xor eax, eax
cmp ecx, 2
setl al
mov edi, dword [esi + 0xd0]
jmp dword [eax*4 + 0x4458a4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4458ac]
mov dword [esi + 0x18], edx
jmp dword [0x4458e4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xc9be8534
push dword [0x44ad34]
call fcn.0043e210
add esp, 8
push dword [esi + 0x48]
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0xc]
push 0
call eax
nop
nop
nop
nop
nop
nop
nop
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xc9be8534
push dword [0x44ad34]
call fcn.0043e210
add esp, 8
push dword [esi + 0x48]
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0xc]
push 0
call eax
jmp dword [0x4458f0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4458f4]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458fc]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4458b4]
mov eax, dword [esi + 0xc4]
jmp dword [eax*4 + 0x4458bc]
mov dword [esi + 0x18], edx
push 0x46483752
push dword [0x44ad34]
call fcn.0043e210
add esp, 8
mov ecx, dword [case.0x4120a9.70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
push 0
push 0
mov ecx, dword [esi + 0x28]
push dword [ecx]
push 0x41c5e0
push 0
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458dc]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x5c]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xb8797400
mov dword [esi + 0x10], 0x1211102f
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x412b37
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x10]
add eax, 0x8c3888df
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf
mov ecx, dword [esi]
mov byte [esi + ecx + 0x10], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x412b10
mov eax, dword [0x44ad40]
test eax, eax
je 0x412d48
mov ecx, dword [esi + 0x10]
xor edx, edx
mov edi, dword [0x44ad44]
nop
cmp dword [edi + edx*8], 0x7e28bda7
je 0x412d27
inc edx
cmp eax, edx
jne 0x412b50
jmp 0x412d48
mov dword [esi + 0x18], edx
mov edi, dword [esi + 0xb8]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xc9be8534
push dword [0x44ad34]
call fcn.0043e210
add esp, 8
push dword [esi + 0x58]
push edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 0xc]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
jmp dword [ecx*4 + 0x4458c4]
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
mov dword [esi + 0x10], 0x1211102f
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 3
ja 0x412c69
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x10]
add ecx, 0x8c3888df
xor ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xf
mov edx, dword [esi]
mov byte [esi + edx + 0x10], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 4
jb 0x412c40
mov ecx, dword [0x44ad40]
test ecx, ecx
je case.0x4120a9.66
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44ad44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x412dec
inc edi
cmp ecx, edi
jne 0x412c90
jmp case.default.0x412ecd
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov dword [esi + 0x10], 0x1211102f
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 3
ja 0x412ce9
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x10]
add ecx, 0x8c3888df
xor ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xf
mov edx, dword [esi]
mov byte [esi + edx + 0x10], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 4
jb 0x412cc0
mov ecx, dword [0x44ad40]
test ecx, ecx
je case.default.0x412de5
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44ad44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x412e3f
inc edi
cmp ecx, edi
jne 0x412d10
jmp case.default.0x412de5
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x412d48
push dword [esi + 0x5c]
push 0
push dword [esi + 0x24]
push 3
push dword [0x44ad48]
push eax
call fcn.0043cab0
add esp, 0x18
mov dword [esi + 0x10], 0x1211102f
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x412d87
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x10]
add eax, 0x8c3888df
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf
mov ecx, dword [esi]
mov byte [esi + ecx + 0x10], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x412d60
mov eax, dword [0x44ad40]
test eax, eax
je case.default.0x412de5
mov ecx, dword [esi + 0x10]
xor edx, edx
mov edi, dword [0x44ad44]
nop
cmp dword [edi + edx*8], 0x625b6034
je 0x412db3
inc edx
cmp eax, edx
jne 0x412da0
jmp case.default.0x412de5
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x412de5
push dword [esi + 0x24]
push 1
push dword [0x44ad48]
push eax
call fcn.0043cab0
add esp, 0x10
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458fc]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x412e0a
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458fc]
mov ebx, edx
push eax
call fcn.0043a960
add esp, 4
xor eax, eax
mov ecx, dword [esi + 0x14]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445904]
xor eax, eax
cmp dword [esi + 0xc], 0
sete al
mov edx, ebx
jmp dword [eax*4 + 0x44591c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x412ed4
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
jmp dword [ecx*4 + 0x4458fc]
mov ebx, edx
xor eax, eax
mov ecx, dword [esi + 0x14]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445904]
push ecx
call fcn.00409da0
add esp, 4
xor eax, eax
cmp dword [esi + 0xc], 0
sete al
mov edx, ebx
jmp dword [eax*4 + 0x44591c]
push dword [esi + 0xc]
mov ebx, edx
call fcn.00409da0
add esp, 4
inc ebx
mov dword [esi + 0x18], ebx
jmp dword [0x445790]
push eax
push 1
push dword [0x44ad48]
push ecx
call fcn.0043cab0
add esp, 0x10
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458fc]
push eax
push 1
push dword [0x44ad48]
push ecx
call fcn.0043cab0
add esp, 0x10
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [ecx*4 + 0x4458fc]
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.0x4120a9.33
mov ecx, edx
jmp dword [0x445850]
sub ebx, edx
inc ebx
jmp 0x413244
mov edi, dword [esi + 0x28]
push dword [edi]
call fcn.0043a960
add esp, 4
mov dword [edi], 0
not ebx
shr ebx, 0x1f
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
jmp dword [ebx*4 + 0x445814]
xor eax, eax
mov ecx, dword [esi + 0x24]
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x44582c]
mov eax, ecx
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, 1
xor ebx, ebx
jmp dword [ecx*4 + 0x44586c]
mov ebx, dword [esi + 0x14]
mov ecx, ebx
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x412f70
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
mov edi, dword [esi + 0x6c]
jge 0x412f8d
mov ecx, 0xffffffff
push ecx
call fcn.00409d90
add esp, 4
mov dword [esi + 0xc], eax
mov dword [edi], 0x9c9f9e7f
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x412fe2
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0xeb
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x905633eb
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x8e
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x412fb0
mov edx, dword [esi + 0x68]
mov dword [edx], 0x89fb8bfa
mov dword [edx + 4], 0x85f9870d
mov dword [edx + 8], 0x810f830c
mov dword [edx + 0xc], 0x9de19fe6
mov dword [edx + 0x10], 0x99ec9bee
mov dword [edx + 0x14], 0x95a197b6
mov dword [edx + 0x18], 0x911893ef
mov dword [edx + 0x1c], 0xadd3afd3
mov dword [edx + 0x20], 0xa9d6ab8a
mov dword [edx + 0x24], 0xa5d4a72f
mov dword [edx + 0x28], 0xa12fa3c3
mov dword [edx + 0x2c], 0xbd9cbf31
mov dword [edx + 0x30], 0xb9c2bb8f
mov dword [edx + 0x34], 0xb58ab796
mov word [edx + 0x38], 0xb3b2
mov eax, dword [esi + 0x94]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x3f
ja 0x413095
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x71f39804
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x72
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x40
jb 0x413070
movzx ecx, word [edx]
mov eax, dword [esi + 0xc]
test cx, cx
je 0x4130c1
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4130b0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4130f1
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4130e0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41342a
mov edx, dword [esi + 0x8c]
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413110
jmp 0x41342d
mov edx, dword [esi + 0xc0]
mov dword [edx], 0x53c4ff
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x413165
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa419cbe5
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x4c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x413140
push edx
push dword [esi + 0x20]
call fcn.004033b0
add esp, 8
mov dword [esi + 0x24], eax
mov edx, dword [esi + 0xbc]
mov word [edx], 0x9080
mov byte [edx + 2], 0x7d
mov dword [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
mov edi, dword [esi + 0x74]
mov ebx, dword [esi + 0x14]
ja 0x4131c5
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x691d98ae
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x33
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x4131a0
push edx
push dword [esi + 0x20]
call fcn.004033b0
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4131fa
sar eax, 1
xor ebx, ebx
mov ecx, dword [esi + 0x24]
test ecx, ecx
setne bl
mov dword [esi + 0x20], ebx
jmp dword [ebx*4 + 0x445834]
mov dword [esi + 0x2c], 0
xor ebx, ebx
test edx, edx
setne bl
mov ecx, edx
mov dword [esi + 0x30], ebx
jmp dword [ebx*4 + 0x44583c]
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.default.0x41323b
sub ebx, dword [esi + 0x24]
inc ebx
mov dword [esi + 0x2c], ebx
xor ebx, ebx
test edx, edx
setne bl
mov ecx, edx
mov dword [esi + 0x30], ebx
jmp dword [ebx*4 + 0x44583c]
xor ebx, ebx
mov dword [esi + 0x38], edx
add eax, dword [esi + 0x2c]
lea ecx, [ebx + eax]
add ecx, 0xa
mov edx, ebx
mov dword [esi + 0x54], ebx
add eax, ebx
lea eax, [eax*2 + 0x14]
test ecx, ecx
jns 0x413267
mov eax, 0xffffffff
push eax
call fcn.00409d90
add esp, 4
mov dword [edi], 0x13871182
mov dword [edi + 4], 0x1772157a
mov dword [edi + 8], 0x1b761974
mov dword [edi + 0xc], 0x1f4c1d4f
mov word [edi + 0x10], 0x100
mov ecx, dword [esi + 0xa0]
mov dword [ecx], 0
mov word [ecx + 4], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x17
ja 0x4132de
mov ebx, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [ebx + ecx]
and ebx, ecx
add ebx, ebx
sub edx, ebx
add edx, 0x87bce000
mov dword [esi + 4], edx
mov edx, dword [esi + 4]
add dl, 0xf0
mov ecx, dword [esi]
mov byte [edi + ecx], dl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x18
jb 0x4132b0
movzx edx, word [edi]
mov dword [esi + 0xc], eax
mov ebx, eax
test dx, dx
je 0x413311
mov ecx, dword [esi + 0x98]
mov ebx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], dx
add ebx, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x413300
mov dword [ebx], 0x220020
add ebx, 4
mov ecx, dword [esi + 0x14]
movzx eax, word [ecx]
test ax, ax
je 0x413341
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413330
lea edi, [ebx + 2]
mov word [ebx], 0x22
jmp dword [0x445854]
push dword [esi + 0x14]
call fcn.00409da0
add esp, 4
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
jmp dword [eax*4 + 0x44585c]
mov word [edi], 0x2c
mov ecx, dword [esi + 0x24]
lea edi, [ecx - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x413380
lea eax, [ebx + 4]
mov dword [esi + 0x20], eax
mov dword [esi + 4], 0
cmp dword [esi + 0x2c], 2
jl 0x413444
cmp ecx, edi
jae 0x413444
mov eax, dword [esi + 0x2c]
lea eax, [ebx + eax*2]
add eax, 2
mov dword [esi + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x413444
lea eax, [esi + 4]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esi + 4]
mov edx, dword [esi + 0x20]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x20], edx
cmp edx, dword [esi + 0x14]
jae 0x413441
add ebx, eax
cmp ebx, edi
mov edx, dword [esi + 0x18]
mov ecx, ebx
jb 0x4133c0
jmp 0x413444
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
jmp dword [eax*4 + 0x44585c]
mov dword [esi + 0x20], edi
mov eax, 1
mov dword [esi + 0x14], 0
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x30]
jmp dword [ecx*4 + 0x445864]
mov edi, dword [esi + 0x1c]
mov word [eax], 0
mov eax, 1
mov edx, dword [esi + 0x18]
jmp dword [eax*4 + 0x445874]
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
mov word [eax], 0
mov eax, 1
mov dword [esi + 0x14], 0
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x30]
jmp dword [ecx*4 + 0x445864]
mov ecx, dword [esi + 0x20]
mov word [ecx], 0x2c
mov eax, dword [esi + 0x38]
lea ebx, [eax - 1]
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413480
lea eax, [ecx + 2]
mov dword [esi + 0x14], eax
mov dword [esi + 4], 0
cmp dword [esi + 0x54], 2
jl 0x4134e6
cmp dword [esi + 0x38], ebx
jae 0x4134e6
mov eax, dword [esi + 0x54]
lea eax, [ecx + eax*2]
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x38]
nop
nop
nop
cmp byte [edi], 0
je 0x4134e6
lea eax, [esi + 4]
push eax
push ebx
push edi
call fcn.0040d860
add esp, 0xc
movzx ecx, word [esi + 4]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x24]
jae 0x4134e3
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x18]
jb 0x4134b0
jmp 0x4134e6
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov word [eax], 0
mov eax, 1
xor ebx, ebx
mov dword [esi + 0x24], 0
mov edi, dword [esi + 0x1c]
jmp dword [eax*4 + 0x445874]
mov edi, dword [esi + 0x34]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edi
mov dword [esi + 0x14], ebx
push ebx
call fcn.0043eae0
add esp, 0x1c
mov ebx, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44580c]
push 0
mov eax, dword [esi + 0x44]
push dword [eax]
mov eax, dword [esi + 0x28]
push dword [eax]
push dword [edi]
call fcn.0043f2a0
add esp, 0x10
mov ebx, eax
mov edx, dword [edi]
mov dword [esi + 0x10], 0x1211102f
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x413597
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x10]
add eax, 0x8c3888df
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf
mov ecx, dword [esi]
mov byte [esi + ecx + 0x10], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x413570
mov ecx, dword [0x44ad40]
test ecx, ecx
je case.0x4120a9.20
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x10]
xor edi, edi
mov eax, dword [0x44ad44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x625b6034
je 0x4135d3
inc edi
cmp ecx, edi
jne 0x4135c0
jmp case.0x4120a9.20
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.0x4120a9.20
push dword [esi + 0xc]
push 1
push dword [0x44ad48]
push eax
call fcn.0043cab0
add esp, 0x10
jmp case.0x4120a9.20
push edi
call fcn.00409da0
add esp, 4
push edi
call fcn.00409da0
add esp, 4
jmp dword [0x4457e4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
clc
xor eax, 0x28b00041
inc ecx
add byte [eax], al
das
inc ecx
add byte [eax], al
and eax, dword [ecx]
shr byte [edx], 0x41
add byte [esi], al
sub dword [ecx], eax
add dword [eax], eax
add byte [eax], al
arpl si, bx
fiadd word [eax]
jns 0x4453a0
fiadd word [eax]
jns 0x4453a0
inc eax
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 [ebx - 0x22], ah
inc eax
add ch, ch
fiadd word [eax]
push eax
out dx, al
inc eax
add dh, bh
fiadd word [eax]
pop es
fild word [eax]
mov bl, 0xdf
inc eax
add byte [edi + ebx*8 - 0x204cffc0], ah
inc eax
add byte [0x5f0040e2], cl
loop 0x445437
add byte [edi], al
loop 0x44543b
add byte [eax - 0x1e], dl
inc eax
add byte [edi - 0x1e], al
inc eax
add byte [edi - 0x1e], al
inc eax
add byte [edi - 0x1e], bl
inc eax
add byte [esi - 0x19], al
inc eax
add byte [ebp - 0x19], ch
inc eax
add cl, bl
out 0x40, eax
add byte [edi + 0x40], bl
add byte [0x260040e2], bl
loop 0x445463
add byte [eax + ebp*8 + 0x40], dh
add al, ch
out 0x40, eax
add bl, cl
call 0xe8b85472
inc eax
add cl, bl
call 0xe931547a
inc eax
add ch, ch
call 0xe9ca547e
inc eax
add byte [ecx], al
add byte [esi + 0x10040e9], al
jmp 0xe9ca5486
add byte [eax - 0x4fffbf13], dh
in eax, dx
inc eax
add byte [edx - 0x4fffbf13], dh
in eax, dx
inc eax
add byte [eax + 0x40ed], bh
out dx, al
inc eax
add byte [eax - 0x12], dl
inc eax
add byte [eax], al
out dx, al
inc eax
add ah, bh
out dx, al
inc eax
add byte [esi], bh
sbb eax, dword [ecx]
push eax
sbb eax, dword [ecx]
push eax
sbb eax, dword [ecx]
push eax
sbb eax, dword [ecx]
push edx
sbb eax, dword [ecx]
and bh, ch
inc eax
add byte [eax], cl
out dx, eax
inc eax
add byte [eax], ah
out dx, eax
inc eax
add byte [edi], ch
out dx, eax
inc eax
add byte [edx + 0x1b], dl
inc ecx
add byte [edi], bh
out dx, eax
inc eax
add dl, cl
out dx, eax
inc eax
add byte [edx - 7], dl
inc eax
add byte [eax + 0x2b0040f0], bl
inc eax
add byte [edi + 0x420040f0], ah
cmc
inc eax
add byte [edx - 7], dl
inc eax
add byte [eax + esi*8 - 0xcc6ffc0], dh
inc eax
add byte [edx], ah
test dword [eax], case.0x40f62d.1
das
test dword [eax], 0x40f944
ret
add al, byte [ecx]
sti
add eax, dword [ecx]
cmpsb byte [esi], byte es:[edi]
add al, byte [ecx]
and byte [ebx], bl
inc ecx
add cl, ah
add al, byte [ecx]
ret 0x4102
and byte [ecx], al
mov edx, 0xd1004120
and byte [ecx], al
add al, 0x23
inc ecx
add byte [eax + 0x23], dh
inc ecx
add byte [ebp - 0x60ffbedb], al
sub byte [ecx], al
push es
xor eax, 905445441
inc ecx
add byte [ecx], al
inc ecx
add byte [esi], al
xor eax, 0x35f80041
inc ecx
add byte [esp], ch
inc ecx
add al, dh
and eax, dword [ecx]
pop edi
and eax, 645791809
inc ecx
add byte [esi + 0x25], ch
inc ecx
add byte [esi], dl
daa
inc ecx
add byte [eax - 0x49ffbedb], al
daa
inc ecx
add byte [eax], bl
das
inc ecx
add byte [esi + 0x28b00041], dh
inc ecx
add byte [0xb000412f], bh
sub byte [ecx], al
mov al, 0x28
inc ecx
add byte [edx - 0x4fffbed8], bh
sub byte [ecx], al
dec edi
das
inc ecx
add byte [esi], ah
xor dword [ecx], eax
add dword [edx], esi
inc ecx
add byte [ebx], bl
xor al, byte [ecx]
inc edx
xor al, byte [ecx]
add byte [edi], ch
inc ecx
add byte [eax], al
das
inc ecx
add byte [eax], al
das
inc ecx
add byte [eax], al
das
inc ecx
add byte [eax], dl
das
inc ecx
add byte [edi + 0x33], cl
inc ecx
add bh, dh
xor eax, dword [ecx]
add al, 0x34
inc ecx
add byte [edi + 0x33], ah
inc ecx
add byte [edx + 0x6f004128], bh
xor al, 0x41
add byte [edx + 0x67004128], bh
das
inc ecx
add byte [eax - 0x38ffbee0], dh
sub byte [ecx], al
invalid
inc ecx
add byte [ecx], dl
inc ecx
add byte [edi + 0x2e], dh
inc ecx
add byte [0x100412e], ch
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [0x100412e], ch
add byte [eax], al
add byte [edx - 0x4fffbed2], dl
and byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
or edi, dword [eax]
inc ecx
add byte [esi], cl
cmp eax, dword [ecx]
xor byte [eax], bh
inc ecx
add byte [ebx], bh
cmp byte [ecx], al
cmp edi, dword [eax]
inc ecx
add byte [esi], cl
cmp eax, dword [ecx]
insd dword es:[edi], dx
cmp byte [ecx], al
push cs
cmp eax, dword [ecx]
push cs
cmp eax, dword [ecx]
xchg esi, eax
cmp byte [ecx], al
enter 0x4138, 0
jmp 0x16449a99