Function at 0x4128f2
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x238
mov eax, dword [0x4489ec]
mov dword [esp + 0x38], 0x987376b
mov dword [esp + 0x3c], 0xdb10b82
mov dword [esp + 0x40], 0x1b20fb0
mov dword [esp + 0x44], 0x57303a3
mov dword [esp + 0x48], 0x19780773
mov dword [esp + 0x4c], 0x1d7a1b68
mov dword [esp + 0x50], 0x11b71f64
mov dword [esp + 0x54], 0x15ac13ab
mov dword [esp + 0x58], 0x69a717b0
mov dword [esp + 0x5c], 0x6ddf6be1
mov dword [esp + 0x60], 0x61306f0c
mov dword [esp + 0x64], 0x65026334
mov dword [esp + 0x68], 0x79166717
mov dword [esp + 0x6c], 0x7d0a7b06
mov dword [esp + 0x70], 0x711e7f31
mov dword [esp + 0x74], 0x75c973d9
mov dword [esp + 0x78], 0x490077ca
mov dword [esp + 0x7c], 0x4d074b3c
mov dword [esp + 0x80], 0x41c64f2c
mov dword [esp + 0x84], 0x45364336
mov dword [esp + 0x88], 0x5926473f
mov dword [esp + 0x8c], 0x5dea5b1b
mov dword [esp + 0x90], 0x51e25fec
mov dword [esp + 0x94], 0x55fb53f7
mov dword [esp + 0x98], 0xa9f457f3
mov dword [esp + 0x9c], 0xad11abf5
mov dword [esp + 0xa0], 0xa1dfaf18
mov dword [esp + 0xa4], 0xa5d7a3d7
mov dword [esp + 0xa8], 0xb9d8a7ed
mov dword [esp + 0xac], 0xbdccbbcd
mov dword [esp + 0xb0], 0xb1c6bfdc
mov dword [esp + 0xb4], 0xb5eab3ed
mov dword [esp + 0xb8], 0x89e9b7e0
mov dword [esp + 0xbc], 0x8df68bd4
mov dword [esp + 0xc0], 0x81328fec
mov dword [esp + 0xc4], 0x853f833b
mov dword [esp + 0xc8], 0x99e68723
mov dword [esp + 0xcc], 0x9d3d9bc1
mov dword [esp + 0xd0], 0x91239f39
mov dword [esp + 0xd4], 0x95e99321
mov dword [esp + 0xd8], 0xe9d397f4
mov dword [esp + 0xdc], 0xed58eb50
mov dword [esp + 0xe0], 0xe151ef5d
mov dword [esp + 0xe4], 0xe593e347
mov dword [esp + 0xe8], 0xf995e797
mov dword [esp + 0xec], 0xfd84fbb3
mov dword [esp + 0xf0], 0xf180ff8c
mov dword [esp + 0xf4], 0xf58cf380
mov dword [esp + 0xf8], 0xc996f784
mov dword [esp + 0xfc], 0xcd69cb9d
mov dword [esp + 0x100], 0xc16dcf6a
mov dword [esp + 0x104], 0xc579c372
mov dword [esp + 0x108], 0xd9b1c7b5
mov dword [esp + 0x10c], 0xdd93dbad
mov dword [esp + 0x110], 0xd1abdfa2
mov dword [esp + 0x114], 0xd5d2d3a6
mov word [esp + 0x118], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe1
ja 0x40ccef
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
add ecx, 0x4959499d
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov edx, ecx
not edx
and edx, 0xa9
and ecx, 0x56
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe2
jb 0x40ccb0
lea ebp, [esp + 0x38]
push 0
push 0
push 0
push 0
push ebp
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443d70]
xor ebx, ebx
jmp 0x40d0c2
jmp dword [0x443d78]
mov edi, eax
xor eax, eax
test edi, edi
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x443d88]
mov eax, dword [0x4489f4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xac2daeaf
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40cd90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x5db9fc24
xor ecx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
add cl, 0x75
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40cd60
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], 0xfeaefcad
mov dword [esp + 0x3c], 0xf2a7f0a4
mov word [esp + 0x40], 0xf4f5
mov dword [esp + 0x42], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xd
ja 0x40ce11
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ebx, dword [esp + 4]
movzx ebx, byte [esp + ebx + 0x38]
lea eax, [edx + 0x49351074]
add edx, ebx
add edx, 0x49351074
not ebx
or eax, ebx
sub ebx, eax
lea eax, [edx + ebx*2]
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x77
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x40cdd0
push ecx
push 0
push 0
push 0
push dword [esp + 0x25c]
push ebp
push edi
call dword [esp + 0x24]
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x443d90]
xor ebx, ebx
jmp dword [0x443de0]
xor eax, eax
mov ecx, dword [esp + 0x264]
test ecx, ecx
setg al
jmp dword [eax*4 + 0x443d98]
movzx eax, byte [0x448b24]
jmp dword [eax*4 + 0x443da0]
push ecx
push ecx
push ecx
push ecx
push ebx
call dword [0x4489fc]
movzx eax, byte [0x448b24]
jmp dword [eax*4 + 0x443da0]
mov dword [esp + 0xc], 0xabd5a9eb
mov dword [esp + 0x10], 0xafd5add3
mov dword [esp + 0x14], 0xa3c7a1d9
mov dword [esp + 0x18], 0xa786a5ee
mov dword [esp + 0x1c], 0xbbd5b9d7
mov dword [esp + 0x20], 0xbfd8bddf
mov dword [esp + 0x24], 0xb3cfb1df
mov dword [esp + 0x28], 0xb7d9b5c3
mov dword [esp + 0x2c], 0xcb43c9aa
mov dword [esp + 0x30], 0xcf83cdbc
mov dword [esp + 0x34], 0xc1c0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2b
ja 0x40cf0e
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0x42b488a0
xor eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xf8
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2c
jb 0x40cee0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x40cf32
lea ebp, [esp + 0x38]
lea ecx, [esp + 0xe]
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cf20
mov word [ebp], 0
movzx eax, word [0x448b26]
test ax, ax
je 0x40cf66
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp + ecx], ax
movzx eax, word [ecx + 0x448b28]
add ecx, 2
test ax, ax
jne 0x40cf50
add ebp, ecx
mov word [ebp], 0
mov eax, dword [0x448a00]
mov dword [esp + 0xc], 0x9774757a
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 6
ja 0x40cfd3
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 + 0xc]
add ecx, 0xe8a39687
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 3
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 7
jb 0x40cfa0
lea ecx, [esp + 0x38]
push dword [esp + 0xc]
push 0xffffffffffffffff
push ecx
push ebx
call eax
mov edx, ebx
xor ebx, ebx
mov ecx, dword [esp + 0x250]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
mov ebp, dword [esp + 0x264]
push ebp
push dword [esp + 0x260]
push dword [esp + 0x260]
push eax
push ecx
mov dword [esp + 0x20], edx
push edx
call dword [0x448a04]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443da8]
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x25c]
mov ebp, dword [esp + 8]
jmp dword [0x443db4]
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x264]
push ebx
push ebp
call dword [0x448a14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x264]
push ebx
push ebp
call dword [0x448a14]
jmp dword [0x443db8]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x443dc0]
push 0
push dword [esp + 0xc]
call dword [0x448a08]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x443dc8]
mov bl, 1
mov eax, dword [case.0x40d023.0]
nop
nop
nop
jmp eax
push dword [esp + 8]
call dword [0x448a18]
jmp dword [0x443de0]
mov eax, ebx
add esp, 0x238
pop esi
pop edi
pop ebx
pop ebp
ret
push esi
call dword [0x448a18]
jmp 0x40d0c2
mov eax, dword [0x4489f0]
mov dword [esp + 0x38], 0x5150aef5
mov byte [esp + 0x3c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40d144
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea edi, [ecx + edx]
add edi, 0x861e587e
add ecx, 0x7e
and ecx, edx
mov edx, edi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, edi
sub ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x30
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40d100
movzx ecx, word [esp + 0x38]
push 0
push ecx
push 0x448a20
push esi
call eax
mov eax, dword [0x4489f0]
mov dword [esp + 0x38], 0x5150aef5
mov byte [esp + 0x3c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40d1c4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea edi, [ecx + edx]
add edi, 0x861e587e
add ecx, 0x7e
and ecx, edx
mov edx, edi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, edi
sub ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x30
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40d180
movzx ecx, word [esp + 0x38]
push 0
push ecx
push 0x448a20
push esi
call eax
jmp dword [0x443d80]
push edi
call dword [0x448a18]
push edi
call dword [0x448a18]
jmp dword [0x443dec]
push edi
call fcn.00409640
add esp, 4
mov dword [esi + 0xc], ebx
push ebx
call fcn.00403290
add esp, 4
mov ebx, eax
mov edx, dword [esi + 8]
mov word [edx], 0x4846
mov byte [edx + 2], 0xda
mov word [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40d805
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xb3decb8a
xor eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xaa
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40d7e0
mov edi, dword [esi + 0xdc]
jmp dword [0x444404]
push edx
push ebx
call fcn.00403310
mov edx, dword [esi + 8]
add esp, 8
nop
nop
push edx
push ebx
call fcn.00403310
mov edx, dword [esi + 8]
add esp, 8
jmp dword [0x444408]
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x444410]
call fcn.00435c20
movzx eax, al
jmp dword [eax*4 + 0x444418]
mov dword [edi], 0x412624
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40d8ac
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xde949558
add eax, 0xde949558
and eax, edx
mov edx, ecx
not edx
and edx, eax
add edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xe5
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40d870
push edi
push ebx
call fcn.00403310
add esp, 8
mov dword [esi + 0x1c], eax
mov edx, dword [esi + 0xcc]
mov word [edx], 0xe3ee
mov byte [edx + 2], 0x5f
mov dword [edx + 3], 0
mov byte [edx + 7], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40d905
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x662bfa71
xor eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xd4
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb case.default.0x40d9f5
push edx
push ebx
call fcn.00403310
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esi + 8], ecx
push ebx
call fcn.0040e410
add esp, 4
push dword [esi + 0xc]
call fcn.00403500
add esp, 4
mov edi, dword [esi + 0x54]
mov ecx, edi
push 1
call fcn.00409e90
push edi
call fcn.0041cdb0
add esp, 4
mov ecx, edi
call fcn.0040a730
mov edi, dword [esi + 0x50]
mov ecx, edi
push 3
call fcn.00409e90
push edi
call fcn.0041d7f0
add esp, 4
mov ecx, edi
call fcn.0040a730
mov edi, dword [esi + 0x4c]
mov ecx, edi
push 1
call fcn.00409e90
push edi
call fcn.0041da90
add esp, 4
mov ecx, edi
call fcn.0040a730
mov edi, dword [esi + 0x48]
mov ecx, edi
push 1
call fcn.00409e90
push edi
call fcn.0041f6e0
add esp, 4
push edi
call fcn.0041ffc0
add esp, 4
push edi
call fcn.00420420
add esp, 4
push edi
call fcn.004236d0
add esp, 4
mov ecx, edi
call fcn.0040a730
mov edi, dword [esi + 0x44]
mov ecx, edi
push 1
call fcn.00409e90
push edi
call fcn.004223b0
add esp, 4
mov ecx, edi
call fcn.0040a730
mov edi, dword [esi + 0x40]
mov ecx, edi
push 1
call fcn.00409e90
push edi
call fcn.00427c00
add esp, 4
push edi
call fcn.00431750
add esp, 4
mov eax, dword [esi + 8]
jmp dword [eax*4 + 0x444420]
push edi
call fcn.00425290
add esp, 4
mov dword [esi + 8], ebx
mov ecx, edi
call fcn.0040a730
mov edx, dword [esi + 0x38]
mov dword [edx], 0xb988bac7
mov dword [edx + 4], 0x17cbb5
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40da55
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x91b1e6df
xor eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xe
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40da30
mov ecx, dword [str.15f7911c5c73e2c263a9b433eb55ff31]
mov edi, dword [esi + 0x34]
mov dword [edi], 0x61a1d58e
mov dword [edi + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40daae
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
lea ebx, [eax + 3]
add eax, edx
and ebx, edx
add ebx, ebx
sub eax, ebx
add eax, 0x3a095b03
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0x99
mov edx, dword [esi]
mov byte [edi + edx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40da80
mov edx, dword [str.xAeOdp__mainteam]
mov edi, dword [esi + 0x20]
mov dword [edi], 0x1058484f
mov dword [edi + 4], 0x52445659
mov dword [edi + 8], 0x4243525b
mov dword [edi + 0xc], 0x135d505b
mov dword [edi + 0x10], 0x4a5a44
mov dword [edi + 0x14], 0x6b707176
mov dword [edi + 0x18], 0x78202e2a
mov byte [edi + 0x1c], 0x4a
mov dword [edi + 0x1d], 0
mov byte [edi + 0x21], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x21
ja 0x40db48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ebx, dword [esi]
movzx ebx, byte [edi + ebx]
lea edi, [eax + ebx]
add edi, 0x15f8c9ac
add eax, 0x15f8c9ac
and eax, ebx
add eax, eax
sub edi, eax
mov dword [esi + 0x58], edi
mov eax, dword [esi + 0x58]
add al, 0x7e
mov edi, dword [esi]
mov ebx, dword [esi + 0x20]
mov byte [ebx + edi], al
mov edi, dword [esi + 0x20]
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x22
jb 0x40db10
movzx ebx, byte [edi]
mov eax, dword [esi + 0x10]
test bl, bl
je 0x40db6b
inc edi
mov eax, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40db60
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
mov edi, dword [esi + 0x3c]
je 0x40db8b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40db80
mov byte [eax], 0
mov ebx, dword [esi + 0x34]
movzx edx, byte [ebx]
test dl, dl
je 0x40dbab
inc ebx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x40dba0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dca5
inc ecx
mov ebx, dword [esi + 8]
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dbc0
jmp 0x40dca8
mov ebx, dword [esi + 8]
mov byte [eax], 0
mov edx, dword [esi + 0x38]
movzx ecx, byte [edx]
test cl, cl
je 0x40dccb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dcc0
mov byte [eax], 0
movzx ecx, byte [0x4489c0]
test cl, cl
je 0x40dcf1
xor edx, edx
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [edx + 0x4489c1]
inc edx
test cl, cl
jne 0x40dce0
add eax, edx
mov byte [eax], 0
mov dword [edi], 0xf96bfbbd
mov dword [edi + 4], 0xfd68ff6c
mov dword [edi + 8], 0xe172e387
mov dword [edi + 0xc], 0xe5c9e772
mov dword [edi + 0x10], 0xe971eb9e
mov dword [edi + 0x14], 0xed89ef7e
mov dword [edi + 0x18], 0x1130134c
mov dword [edi + 0x1c], 0x15841777
mov dword [edi + 0x20], 0x19741b8a
mov dword [edi + 0x24], 0x1d7b1f77
mov dword [edi + 0x28], 0x1940363
mov dword [edi + 0x2c], 0x597076f
mov dword [edi + 0x30], 0x95b0b98
mov dword [edi + 0x34], 0xd210f96
mov dword [edi + 0x38], 0x31ab33a9
mov dword [edi + 0x3c], 0x351937ad
mov dword [edi + 0x40], 0x39ab3b50
mov dword [edi + 0x44], 0x3d513fa8
mov dword [edi + 0x48], 0x21b5230f
mov dword [edi + 0x4c], 0x254827b0
mov dword [edi + 0x50], 0x29ba2b4f
mov dword [edi + 0x54], 0x2dbf2f49
mov dword [edi + 0x58], 0x51355336
mov dword [edi + 0x5c], 0x55595732
mov dword [edi + 0x60], 0x59585b54
mov dword [edi + 0x64], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x67
ja 0x40dde7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
add ecx, 0x975d69e8
xor ecx, edx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x58]
add cl, 0xee
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x68
jb 0x40ddc0
sub eax, dword [esi + 0x10]
mov edi, dword [esi + 0xd0]
mov dword [edi], 0xae08a8f8
mov dword [edi + 4], 0xa234ac3f
mov word [edi + 8], 0xa0a3
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xf
ja 0x40de47
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
add ecx, 0xd3f16591
xor ecx, edx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x58]
add cl, 0xc6
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x10
jb 0x40de20
mov ecx, edi
push dword [esi + 0x2c]
mov edi, dword [esi + 0x30]
push edi
push eax
push dword [esi + 0x10]
push dword [esi + 0x3c]
push ecx
push 0x448a20
call fcn.0040c1a0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x444428]
xor edi, edi
xor eax, eax
test edi, 0
setne al
jmp dword [eax*4 + 0x444440]
push edi
call fcn.00402990
add esp, 4
mov dword [esi + 8], eax
jmp dword [0x444448]
push edi
call fcn.00409640
add esp, 4
mov edi, dword [esi + 8]
push edi
call fcn.00411030
add esp, 4
push edi
call fcn.00403500
add esp, 4
mov edi, dword [esi + 0x24]
jmp dword [0x444454]
mov edi, dword [edi]
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40ded8
cmp edx, 0x2e
jne 0x40ded9
dec eax
mov dword [esi + 8], edi
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x40deeb
cmp ecx, 0x2e
jne case.0x40cd07.55
dec eax
push eax
call fcn.00409630
add esp, 4
mov edi, eax
mov eax, dword [case.0x40de68.4]
nop
nop
nop
nop
jmp eax
push edi
push dword [esi + 8]
call fcn.004374b0
add esp, 8
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.0043a100
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444440]
mov edi, dword [esi + 0x24]
jmp dword [0x444454]
mov dword [edi], 0xafd1cfd0
mov word [edi + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40df75
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x604a1da0
xor eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xf4
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40df50
push edi
push ebx
call fcn.00403310
add esp, 8
jmp case.0x40de68.11
push edi
push ebx
call fcn.00403310
add esp, 8
jmp dword [0x44445c]
mov dword [edi], 0xafd1cfd0
mov word [edi + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40df90
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x604a1da0
xor eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
add al, 0xf4
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40dfc0
jmp 0x40df90
xor ecx, ecx
test eax, eax
setg cl
mov ebx, dword [esi + 0xd4]
jmp dword [ecx*4 + 0x444460]
mov ecx, dword [esi + 0x28]
push 1
call fcn.00409e90
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x448d29], 0
lea eax, [eax + 1]
jne 0x40e010
mov edi, dword [esi + 0xc8]
mov dword [edi], 0xf8e696b6
mov dword [edi + 4], 0xf9fc31e9
mov word [edi + 8], 0x3fe
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xf
ja 0x40e077
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
add ecx, 0x2469b7be
xor ecx, edx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x58]
add cl, 0x3c
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x10
jb 0x40e050
mov edx, edi
mov edi, dword [esi + 0x28]
mov ecx, edi
push eax
push 0x448d28
push edx
call fcn.0040a090
mov ecx, edi
call fcn.0040a730
mov ecx, edi
call fcn.00409ed0
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444474]
xor eax, eax
cmp dword [esi + 0x1c], 0
setg al
mov edi, dword [esi + 0xd8]
jmp dword [eax*4 + 0x444478]
push 0
call fcn.0043d920
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444480]
mov dword [ebx], 0x22902488
mov dword [ebx + 4], 0x2e53208f
mov dword [ebx + 8], 0x2a952c82
mov dword [ebx + 0xc], 0x36492886
mov dword [ebx + 0x10], 0x328a3459
mov dword [ebx + 0x14], 0x3e90308f
mov dword [ebx + 0x18], 0x3a813c81
mov dword [ebx + 0x1c], 0x64a385b
mov dword [ebx + 0x20], 0x2ac04b2
mov dword [ebx + 0x24], 0xe6100b1
mov dword [ebx + 0x28], 0xab80ca0
mov dword [ebx + 0x2c], 0x167b08a7
mov dword [ebx + 0x30], 0x12ad14ba
mov dword [ebx + 0x34], 0x1e7110be
mov dword [ebx + 0x38], 0x1a6e1c71
mov dword [ebx + 0x3c], 0x667918b4
mov dword [ebx + 0x40], 0x62cc64db
mov dword [ebx + 0x44], 0x6ecc60d6
mov dword [ebx + 0x48], 0x6ad06cdc
mov dword [ebx + 0x4c], 0x760968d7
mov dword [ebx + 0x50], 0x72c97404
mov dword [ebx + 0x54], 0x7e0e7013
mov dword [ebx + 0x58], 0x7a0e7c1f
mov dword [ebx + 0x5c], 0x46ca78c9
mov dword [ebx + 0x60], 0x42fb44e9
mov dword [ebx + 0x64], 0x4ee040ee
mov dword [ebx + 0x68], 0x4a2d4cf8
mov dword [ebx + 0x6c], 0x56294821
mov dword [ebx + 0x70], 0x52f854fb
mov dword [ebx + 0x74], 0x5e3150e7
mov dword [ebx + 0x78], 0x5a5d5c31
mov byte [ebx + 0x7e], 0
mov word [ebx + 0x7c], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x7e
ja 0x40e1f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
add ecx, 0x3418ae01
xor ecx, edx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x58]
add cl, 0xda
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x7f
jb 0x40e1d0
movzx edx, word [ebx]
mov ecx, dword [esi + 0x18]
test dx, dx
je 0x40e221
add ebx, 2
mov ecx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x40e210
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x40e251
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x40e240
mov dword [ecx], 0x220022
mov dword [ecx + 4], 0x22
mov ebx, dword [esi + 0xc4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0x44
mov dword [ebx + 0x2c], 1
push 0xc9be8534
push dword [0x449d28]
call fcn.0043da70
add esp, 8
push edi
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x18]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444488]
jmp case.0x40cd07.75
push dword [esi + 0xc]
call fcn.00403500
add esp, 4
mov eax, dword [edi]
mov dword [esi + 0x58], 0x78797e7f
mov word [esi + 0x5c], 0
mov byte [esi + 0x5e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 6
ja 0x40e389
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x58]
lea edi, [ecx + edx]
add edi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0xaa
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x58], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 7
jb 0x40e350
mov ecx, dword [0x449d34]
test ecx, ecx
je case.0x40cd07.75
mov edx, dword [esi + 0x58]
xor edi, edi
mov ebx, dword [0x449d38]
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x40e3b0
inc edi
cmp ecx, edi
jne 0x40e3a0
jmp case.0x40cd07.75
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x40cd07.75
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
mov ecx, dword [esi + 0x40]
call fcn.00409ed0
mov ecx, dword [esi + 0x44]
call fcn.00409ed0
mov ecx, dword [esi + 0x48]
call fcn.00409ed0
mov ecx, dword [esi + 0x4c]
call fcn.00409ed0
mov ecx, dword [esi + 0x50]
call fcn.00409ed0
mov ecx, dword [esi + 0x54]
call fcn.00409ed0
mov al, 1
int3
mov ecx, dword [esi + 0xbc]
call fcn.00409ed0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 0x148]
inc edi
mov ebx, dword [esi + 0x144]
push ebx
call fcn.004034c0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x4444a8]
mov dword [esi + 0x148], edi
push edi
push ebx
call fcn.004034d0
add esp, 8
mov edi, eax
mov ebx, dword [esi + 0x140]
mov word [ebx], 0xa9d
mov dword [ebx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40e4c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
add eax, 0x81f45e39
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xd0
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40e4a0
push 3
push ebx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4444c0]
mov edx, dword [esi + 0xd0]
mov word [edx], 0xec99
mov eax, dword [esi + 0x130]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40e535
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xd72516c
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x7f
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40e510
push edx
push edi
call fcn.00403240
add esp, 8
fnstcw word [esi + 0x4e]
movzx eax, word [esi + 0x4e]
or eax, 0xc00
mov word [esi + 0x6e], ax
fldcw word [esi + 0x6e]
fistp dword [esi + 0x194]
fldcw word [esi + 0x4e]
mov eax, dword [esi + 0x194]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4444c8]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4444d0]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4444d8]
mov edx, dword [esi + 0xb8]
mov word [edx], 0x61ff
mov eax, dword [esi + 0x11c]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40e5e5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xe9649f1b
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x83
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40e5c0
push 2
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444598]
mov dword [esi + 0xc], edi
mov edi, dword [esi + 0xa4]
jmp dword [0x4445a0]
mov word [edi], 0x9ba
mov eax, dword [esi + 0x78]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40e655
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
add eax, 0x191bbb29
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xdd
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40e630
push 2
push edi
push dword [esi + 0xc]
call fcn.00403460
add esp, 0xc
jmp case.0x40e5f8.2
push 2
push edi
push dword [esi + 0xc]
call fcn.00403460
add esp, 0xc
jmp dword [0x4445ac]
mov word [edi], 0x9ba
mov eax, dword [esi + 0x78]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40e670
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 [edi + ecx]
add eax, 0x191bbb29
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xdd
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40e6b0
jmp 0x40e670
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4444e0]
mov edx, dword [esi + 0xcc]
mov word [edx], 0x29d8
mov eax, dword [esi + 0x120]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40e745
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x711f46e6
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x32
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40e720
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc8]
mov word [edx], 0x55d0
mov eax, dword [esi + 0x124]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40e7a5
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x38a1d871
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xd9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40e780
push edx
push edi
call fcn.004031e0
add esp, 8
mov edi, dword [esi + 0x28]
test edi, edi
sete dl
mov dword [esi + 0x14], eax
test eax, eax
sete cl
or cl, dl
movzx eax, cl
jmp dword [eax*4 + 0x444678]
mov eax, edi
mov ecx, edi
nop
mov edx, eax
inc eax
cmp byte [edx], 0
jne 0x40e7d0
xor edi, edi
cmp edx, ecx
mov dword [esi + 0x18], edx
jbe 0x40e822
cmp byte [ecx], 0
je 0x40e822
xor edi, edi
mov ebx, dword [esi + 0x28]
nop
nop
nop
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push edx
push ebx
call fcn.0040d1f0
mov edx, dword [esi + 0x18]
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, edx
jae 0x40e822
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40e7f0
mov eax, edi
and eax, 1
xor edi, 1
lea eax, [edi + eax*2]
lea ecx, [eax + eax]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
test eax, eax
jns 0x40e841
mov dword [esi + 0x20], 0xffffffff
jmp dword [0x444684]
push dword [esi + 0x20]
call fcn.00409630
add esp, 4
mov edx, eax
mov dword [esi + 4], 0
mov eax, dword [esi + 0x24]
lea eax, [edx + eax*2]
add eax, 0xfffffffe
mov dword [esi + 0x10], eax
cmp edx, eax
jae 0x40e8ae
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
cmp ebx, edi
jae 0x40e8ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40e8ae
lea eax, [esi + 4]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x10]
jae 0x40e8ae
add ebx, eax
cmp ebx, edi
jb 0x40e880
mov word [edx], 0
mov eax, dword [esi + 0x14]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40e8c0
cmp eax, edi
jae case.0x410618.27
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je case.0x410618.27
mov ebx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push edi
push ebx
call fcn.0040d1f0
add esp, 0xc
lea ecx, [ebx + eax]
cmp ecx, edi
jae case.0x410618.27
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40e8e0
jmp case.0x410618.27
jmp dword [0x444688]
push dword [esi + 0x20]
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
mov ecx, dword [esi + 0x24]
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov edx, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x10], ecx
cmp eax, ecx
mov edi, dword [esi + 0x18]
jae 0x40e980
mov edx, dword [esi + 0x1c]
cmp dword [esi + 0x28], edi
jae 0x40e980
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x28]
nop
nop
cmp byte [ebx], 0
je 0x40e980
lea eax, [esi + 4]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x10]
jae 0x40e980
add ebx, eax
cmp ebx, edi
jb 0x40e950
nop
nop
mov ecx, dword [esi + 0x14]
mov eax, edx
lea edx, [ecx - 1]
mov word [eax], 0
nop
nop
nop
mov eax, edx
cmp byte [edx + 1], 0
lea edx, [edx + 1]
jne 0x40e990
xor edi, edi
cmp ecx, edx
jae 0x40e910
cmp byte [ecx], 0
je 0x40e910
xor edi, edi
mov ebx, dword [esi + 0x14]
mov dword [esi + 0xc], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push edx
push ebx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, edx
jae 0x40e910
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40e9c0
jmp 0x40e910
mov edx, dword [esi + 0xc4]
mov word [edx], 0x8e19
mov eax, dword [esi + 0x128]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40ea55
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xd734b4f3
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x86
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40ea30
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc0]
mov word [edx], 0x6912
mov eax, dword [esi + 0x12c]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40eab5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x270d70ec
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x7c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40ea90
push edx
push edi
call fcn.004031e0
add esp, 8
mov edi, dword [esi + 0x10]
test edi, edi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x4446f0]
mov ecx, edi
mov edx, edi
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40eae0
mov dword [esi + 0x1c], eax
xor edi, edi
mov dword [esi + 0xc], ebx
cmp ebx, edx
jbe 0x40eb32
cmp byte [edx], 0
je 0x40eb32
xor edi, edi
mov ebx, dword [esi + 0x10]
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push dword [esi + 0xc]
push ebx
call fcn.0040d1f0
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, dword [esi + 0xc]
jae 0x40eb32
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40eb00
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40eb40
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x10]
jae 0x40f49f
mov edx, dword [esi + 0x20]
cmp ebx, dword [esi + 0xc]
jae 0x40f49f
mov edx, dword [esi + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f49f
lea eax, [esi + 4]
push eax
mov edi, dword [esi + 0xc]
push edi
push ebx
mov dword [esi + 0x10], edx
call fcn.0040d1f0
mov edx, dword [esi + 0x10]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x14]
jae 0x40f49c
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x1c]
jb 0x40eb80
jmp 0x40f49f
sete al
movzx eax, al
jmp dword [eax*4 + 0x4444e8]
mov edx, dword [esi + 0x178]
mov word [edx], 0x51e2
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40ec15
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x38a14bf5
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x59
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40ebf0
push 2
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4444f0]
mov edx, dword [esi + 0xa8]
mov word [edx], 0xdc4a
mov eax, dword [esi + 0x110]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40ec85
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xaad84ac8
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xeb
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40ec60
push 5
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4444f8]
mov edx, dword [esi + 0x170]
jmp dword [0x444500]
mov dword [edx], 0xe863
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja case.0x40ec98.2
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xcba0adf0
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xe7
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40ecc0
jmp case.0x40ec98.2
jmp dword [0x444508]
mov dword [edx], 0xe863
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40ecf0
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xcba0adf0
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xe7
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40ed10
jmp 0x40ecf0
mov dword [esi + 0xc], edx
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40ed48
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
cmp eax, ecx
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
jae 0x40edae
mov edx, dword [esi + 0x20]
cmp ebx, edi
jae 0x40edae
mov edx, dword [esi + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40edae
lea eax, [esi + 4]
push eax
push edi
push ebx
mov dword [esi + 0x10], edx
call fcn.0040d1f0
mov edx, dword [esi + 0x10]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x40edae
add ebx, eax
cmp ebx, edi
jb 0x40ed80
mov word [edx], 0
mov edx, dword [esi + 0xb4]
mov word [edx], 0xbbaf
mov byte [edx + 2], 2
mov eax, dword [esi + 0x114]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40ee05
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x293ca4a5
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x5b
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40ede0
push edx
push dword [ebp + 8]
call fcn.004032b0
add esp, 8
xor ecx, ecx
mov dword [esi + 0x28], eax
test eax, eax
setne cl
mov dword [esi + 0x14], 0
xor ebx, ebx
jmp dword [ecx*4 + 0x444690]
mov edi, dword [esi + 0xbc]
mov ecx, edi
push 2
call fcn.00409e90
push dword [esi + 0x14]
push ebx
push dword [esi + 0x20]
push dword [esi + 0x1c]
push edi
call fcn.004132c0
add esp, 0x14
mov ecx, edi
call fcn.0040a730
movzx eax, al
jmp dword [eax*4 + 0x4446b0]
mov dword [esi + 0x18], ebx
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x174]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
mov edx, dword [esi + 0x3c]
ja 0x40f244
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x40f2b7
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0xc]
jmp dword [ecx*4 + 0x4445b0]
mov edx, dword [esi + 0xa0]
mov word [edx], 0xd8ae
mov eax, dword [esi + 0x108]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40eef5
nop
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 [edx + ecx]
add eax, 0x69c43f54
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40eed0
push 5
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4445b8]
mov edi, dword [esi + 0x9c]
jmp dword [0x4445c4]
push dword [esi + 0x28]
call fcn.004034c0
add esp, 4
mov ecx, eax
mov dword [esi + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x40ef46
mov edi, eax
test dl, dl
jne 0x40ef4c
mov ecx, edi
push ecx
call fcn.00409630
add esp, 4
mov ebx, eax
mov ecx, dword [esi + 0x14]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
mov dword [esi + 0x18], ebx
jmp dword [eax*4 + 0x444698]
mov eax, dword [esi + 0x14]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov byte [ebx + 8], 0
lea ecx, [ebx + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4446a0]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4446a0]
xor edi, edi
xor eax, eax
cmp edi, dword [esi + 0x14]
setb al
jmp dword [eax*4 + 0x4446a8]
push edx
push ebx
call fcn.00403310
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [edi + edi*2]
mov ebx, dword [esi + 0x18]
lea ecx, [ebx + eax*4]
push edx
push dword [esi + 0xc]
push dword [esi + 0x10]
call fcn.00412e00
inc edi
xor eax, eax
cmp edi, dword [esi + 0x14]
setb al
jmp dword [eax*4 + 0x4446a8]
push edi
push dword [esi + 0x28]
call fcn.004034d0
add esp, 8
mov ebx, eax
mov edx, dword [esi + 0xdc]
mov word [edx], 0x867e
mov byte [edx + 2], 0x1b
mov word [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40f083
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xcfb3dc00
mov dword [esi + 4], edx
mov edx, dword [esi + 0xdc]
mov eax, dword [esi + 4]
add al, 0xe7
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40f050
push edx
push ebx
call fcn.004031e0
add esp, 8
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0xd8]
mov word [edx], 0x86be
mov byte [edx + 2], 0x1d
mov eax, dword [esi + 0x134]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40f0e5
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x8250c56b
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x90
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40f0c0
push edx
push ebx
call fcn.004031e0
add esp, 8
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x180]
mov dword [edx], 0xc459564d
mov dword [edx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40efe0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x20aea85d
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x5c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f120
jmp 0x40efe0
xor eax, eax
test ebx, ebx
sete al
mov edx, ebx
jmp dword [eax*4 + 0x4446b8]
lea eax, [edx - 4]
mov dword [esi + 0xc], eax
mov eax, dword [edx - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
mov edi, edx
lea ebx, [edx + eax*4]
sete cl
jmp dword [ecx*4 + 0x4446c0]
push dword [esi + 0xc]
call fcn.00409640
add esp, 4
jmp dword [0x4446d0]
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x4446c8]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x40f1b1
push eax
call fcn.00409640
add esp, 4
mov eax, dword [ebx - 8]
test eax, eax
je 0x40f190
push eax
call fcn.00409640
add esp, 4
jmp 0x40f190
push 2
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444510]
mov edx, dword [esi + 0x16c]
mov dword [edx], 0x53fc
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f225
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x2844e8f5
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x5b
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f200
push 3
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444518]
jmp case.0x40ead1.1
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x40f29e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov ebx, ecx
sub ebx, eax
movzx eax, word [ebx + ebx + 0x441318]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x40f260
cmp edx, 9
ja 0x40f2a5
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x40f2b4
mov edx, ecx
cmp edx, 9
jbe 0x40f291
movzx eax, word [edx + edx + 0x441318]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov edx, dword [esi + 0x3c]
mov dword [edx], 0x5b501b13
mov byte [edx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40f304
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x7f5894b8]
and edx, ecx
add eax, ecx
add eax, 0x80a76b48
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x3c]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf0
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40f2d0
mov edx, dword [esi + 0x50]
mov dword [edx], 0xb2b3bdaa
mov dword [edx + 4], 0xf8baacaa
mov dword [edx + 8], 0xa0a2b9a5
mov dword [edx + 0xc], 0xa4f1b6a8
mov dword [edx + 0x10], 0xafa0f6a6
mov dword [edx + 0x14], 0x8dc98e99
mov dword [edx + 0x18], 0x9f9c9897
mov dword [edx + 0x1c], 0xc092699c
mov dword [edx + 0x20], 0x99808197
mov dword [edx + 0x24], 0x8cd98e80
mov dword [edx + 0x28], 0x8489de8e
mov dword [edx + 0x2c], 0x8b84d288
mov dword [edx + 0x30], 0x828e7c81
mov dword [edx + 0x34], 0x797d2a37
mov dword [edx + 0x38], 0x2c71697b
mov dword [edx + 0x3c], 0x7d646573
mov dword [edx + 0x40], 0x7125727c
mov dword [edx + 0x44], 0x56629464
mov word [edx + 0x48], 0x1e3f
mov dword [edx + 0x4a], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x4d
ja 0x40f3e2
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x50]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add ecx, 0x5eaa204c
add eax, 0x5eaa204c
and eax, edx
mov edx, ecx
not edx
and edx, eax
add edx, eax
not eax
and eax, ecx
sub eax, edx
mov edx, dword [esi + 0x50]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x75
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x4e
jb 0x40f3a0
lea eax, [0x448d27]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x40f3f0
movzx ecx, byte [edx]
test cl, cl
je 0x40f422
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
mov ecx, dword [esi + 0x50]
movzx ecx, byte [ecx + edx + 1]
inc edx
test cl, cl
jne 0x40f410
add eax, edx
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
mov edx, dword [esi + 0x3c]
je 0x40f43b
inc edi
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x40f430
mov byte [eax], 0
movzx ecx, byte [edx]
test cl, cl
je 0x40f45b
mov edx, dword [esi + 0x10c]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40f450
mov byte [eax], 0
xor eax, eax
mov edx, dword [esi + 0x18]
test edx, edx
sete al
jmp dword [eax*4 + 0x4446b8]
jmp dword [0x4446d0]
push dword [esi + 0x20]
call fcn.00409640
add esp, 4
jmp dword [0x4446e4]
jmp dword [0x4446e8]
push dword [esi + 0x1c]
call fcn.00409640
add esp, 4
jmp case.0x410618.53
mov eax, dword [esi + 0x1c]
mov word [edx], 0
xor edi, edi
mov ebx, 0xfffffffe
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + edi], 0
lea edi, [edi + 1]
jne 0x40f4b0
lea eax, [ebx + 2]
test edi, edi
jns 0x40f4c8
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
add ebx, eax
mov edx, eax
cmp eax, ebx
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x1c]
jae 0x40f534
add edi, ecx
dec edi
mov edx, eax
mov dword [esi + 0xc], edi
cmp ecx, edi
jae 0x40f534
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40f534
lea eax, [esi + 4]
push eax
push dword [esi + 0xc]
push ecx
mov edi, ecx
mov dword [esi + 0x10], edx
call fcn.0040d1f0
mov edx, dword [esi + 0x10]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x40f534
add edi, eax
cmp edi, dword [esi + 0xc]
mov ecx, edi
jb 0x40f500
mov word [edx], 0
mov edx, dword [esi + 0xb0]
mov word [edx], 0x608
mov byte [edx + 2], 0x99
mov eax, dword [esi + 0x118]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40f595
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa9eed3ca
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xab
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f570
push edx
push dword [ebp + 8]
call fcn.004032b0
add esp, 8
xor ecx, ecx
mov dword [esi + 0x24], eax
test eax, eax
setne cl
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
jmp dword [ecx*4 + 0x4446f8]
mov edi, dword [esi + 0xac]
mov ebx, dword [esi + 0x30]
jmp dword [0x44471c]
mov ecx, edi
push 3
call fcn.00409e90
push dword [esi + 0x18]
push dword [esi + 0x14]
push ebx
push dword [esi + 0x20]
push edi
call fcn.00415de0
add esp, 0x14
mov ecx, edi
call fcn.0040a730
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
push 3
call fcn.00409e90
push dword [esi + 0x18]
push dword [esi + 0x14]
push ebx
push dword [esi + 0x20]
push edi
call fcn.00415de0
add esp, 0x14
mov ecx, edi
call fcn.0040a730
jmp dword [0x444720]
xor eax, eax
mov edx, dword [esi + 0x14]
test edx, edx
sete al
jmp dword [eax*4 + 0x444728]
lea edi, [edx - 4]
mov eax, dword [edx - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edx + eax*4]
sete cl
jmp dword [ecx*4 + 0x444730]
push edi
call fcn.00409640
add esp, 4
mov edi, dword [esi + 0xac]
jmp dword [0x444740]
jmp dword [0x444748]
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edx
sete al
jmp dword [eax*4 + 0x444738]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x40f670
push eax
call fcn.00409640
mov edx, dword [esi + 0x14]
add esp, 4
jmp 0x40f670
push dword [esi + 0x24]
call fcn.004034c0
add esp, 4
mov dword [esi + 0x18], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x40f6bf
mov edi, eax
test dl, dl
jne 0x40f6c5
mov ecx, edi
push ecx
call fcn.00409630
add esp, 4
mov edi, dword [esi + 0x18]
mov dword [eax], edi
add eax, 4
mov dword [esi + 0x14], eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444700]
lea eax, [edi + edi*2]
mov ecx, dword [esi + 0x14]
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 + 0x444708]
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 + 0x444708]
xor ecx, ecx
xor eax, eax
cmp ecx, edi
setb al
mov edi, dword [esi + 0x60]
jmp dword [eax*4 + 0x444710]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov word [eax], 0
inc ecx
xor eax, eax
cmp ecx, dword [esi + 0x18]
setb al
mov edi, dword [esi + 0x60]
jmp dword [eax*4 + 0x444710]
mov dword [esi + 0x10], ecx
push ecx
push dword [esi + 0x24]
call fcn.004034d0
add esp, 8
mov ebx, eax
mov edx, dword [esi + 0x17c]
mov word [edx], 0x3e32
mov byte [edx + 2], 0x89
mov word [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40f7e5
nop
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 [edx + ecx]
add eax, 0x65bc3de3
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x94
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40f7c0
push edx
push ebx
call fcn.004031e0
add esp, 8
mov dword [esi + 0xc], eax
mov word [edi], 0x3523
mov byte [edi + 2], 0xbe
mov eax, dword [esi + 0x138]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40f85c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xeb876c81
add eax, 0x81
and eax, edx
mov edx, ecx
xor edx, eax
add edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xc3
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40f820
push edi
push ebx
call fcn.004031e0
add esp, 8
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xd4]
mov word [edx], 0x4b43
mov byte [edx + 2], 0xd6
mov eax, dword [esi + 0x13c]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40f8c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xb961631f
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f8a0
push edx
push ebx
call fcn.004031e0
add esp, 8
mov ecx, dword [esi + 0x10]
lea ecx, [ecx + ecx*2]
mov edx, dword [esi + 0x14]
mov dword [edx + ecx*4], 0
mov edi, dword [esi + 0xc]
mov dword [edx + ecx*4 + 4], edi
lea edi, [edx + ecx*4]
mov dword [esi + 0x1c], edi
mov dword [edx + ecx*4 + 8], eax
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x40f900
test ebx, ebx
jns 0x40f920
mov eax, 0xffffffff
jmp 0x40f923
lea eax, [edi + 2]
push eax
call fcn.00409630
add esp, 4
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov edx, dword [esi + 0x28]
add ebx, edx
dec ebx
mov dword [esi + 4], 0
cmp ebx, edx
mov dword [esi + 0xc], eax
jbe 0x40f760
add edi, eax
cmp eax, edi
mov ecx, dword [esi + 0x10]
jae 0x40f763
mov dword [esi + 0x1c], ebx
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x40f763
lea eax, [esi + 4]
push eax
push ebx
push edx
mov ebx, edx
call fcn.0040d1f0
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, edi
jae 0x40f760
add ebx, eax
mov eax, dword [esi + 0x1c]
cmp ebx, eax
mov ecx, dword [esi + 0x10]
mov edx, ebx
mov ebx, eax
jb 0x40f960
jmp 0x40f763
jmp dword [0x444740]
push dword [esi + 0x20]
call fcn.00409640
add esp, 4
jmp dword [0x444748]
push dword [esi + 0x30]
call fcn.00409640
add esp, 4
mov ecx, edi
jmp 0x40e430
mov edx, dword [esi + 0x168]
mov dword [edx], 0xd56775
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40fa15
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x400aa1bb
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x98
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f9f0
push 3
push edx
push edi
call fcn.00403460
add esp, 0xc
mov ecx, dword [case.0x40cd07.118]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444530]
mov edx, dword [esi + 0x94]
mov word [edx], 0x5bca
mov eax, dword [esi + 0xf8]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40fa95
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xc3f49a02
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xa8
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40fa70
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x90]
mov word [edx], 0x54ea
mov eax, dword [esi + 0xfc]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40faf5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x57c805fd
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x56
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40fad0
push edx
push edi
call fcn.004032b0
add esp, 8
mov dword [esi + 0x38], eax
mov edx, dword [esi + 0x164]
mov dword [edx], 0x2598
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40fb45
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xf54e843
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x9f
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40fb20
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x14], eax
mov edx, dword [esi + 0x8c]
mov word [edx], 0x64fb
mov eax, dword [esi + 0x100]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40fba5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xf0621e59
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xc2
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40fb80
push edx
push edi
call fcn.00403240
add esp, 8
mov edx, dword [esi + 0x160]
mov dword [edx], 0x1a8a7e
fnstcw word [esi + 0x48]
movzx eax, word [esi + 0x48]
or eax, 0xc00
mov word [esi + 0x68], ax
fldcw word [esi + 0x68]
fistp dword [esi + 0x190]
fldcw word [esi + 0x48]
mov eax, dword [esi + 0x190]
mov dword [esi + 0xe8], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40fc1f
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x84fee408
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0x10
and eax, 0x6f
add eax, eax
sub eax, ecx
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40fbf0
push edx
push edi
call fcn.00403240
add esp, 8
mov edx, dword [esi + 0x15c]
mov dword [edx], 0xe4797c
fnstcw word [esi + 0x46]
movzx eax, word [esi + 0x46]
or eax, 0xc00
mov word [esi + 0x66], ax
fldcw word [esi + 0x66]
fistp dword [esi + 0x18c]
fldcw word [esi + 0x46]
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xe4], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40fc95
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xda82ab5d
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x45
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40fc70
push edx
push edi
call fcn.00403310
add esp, 8
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0x10]
lea ebx, [eax - 1]
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x40fcb0
mov dword [esi + 0xc], 0
cmp eax, ebx
jae 0x40fd15
cmp byte [eax], 0
je 0x40fd15
mov dword [esi + 0xc], 0
mov edi, dword [esi + 0x10]
nop
nop
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.0040d1f0
add esp, 0xc
mov edx, dword [esi + 0xc]
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
mov dword [esi + 0xc], edx
lea ecx, [edi + eax]
cmp ecx, ebx
jae 0x40fd15
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40fce0
mov ecx, dword [esi + 0xc]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x40fd26
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov ecx, eax
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
lea eax, [ecx + eax*2]
mov edx, ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
cmp ecx, eax
mov edi, dword [esi + 0x10]
jae 0x40fd8e
mov edx, dword [esi + 0x18]
cmp edi, ebx
jae 0x40fd8e
mov edx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40fd8e
lea eax, [esi + 4]
push eax
push ebx
push edi
mov dword [esi + 0x10], edx
call fcn.0040d1f0
mov edx, dword [esi + 0x10]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x1c]
jae 0x40fd8e
add edi, eax
cmp edi, ebx
jb 0x40fd60
mov word [edx], 0
mov edi, dword [esi + 0x7c]
push edi
push 0
push 0
push dword [esi + 0xc]
mov ebx, dword [esi + 0x18]
push ebx
push 0
call dword [0x449d30]
mov edi, dword [edi]
lea eax, [edi + edi]
test edi, edi
jns 0x40fdb8
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
push dword [esi + 0x7c]
push edi
mov dword [esi + 0x70], eax
push eax
push dword [esi + 0xc]
push ebx
push 0
call dword [0x449d30]
jmp dword [0x444538]
push ebx
call fcn.00409640
add esp, 4
mov ecx, dword [esi + 0x14]
mov eax, ecx
jmp 0x410b45
mov ecx, dword [esi + 0x14]
mov edx, ecx
jmp 0x410b3d
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov edi, eax
jmp dword [ebx*4 + 0x444620]
xor ebx, ebx
cmp dx, 0x5c
sete bl
mov edi, ecx
jmp dword [ebx*4 + 0x444628]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, dword [esi + 0xc]
setae dl
mov edi, eax
jmp dword [edx*4 + 0x444618]
mov eax, edi
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x38]
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x40fe4d
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 0x10], eax
mov ebx, eax
cmp edi, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
je 0x40ff0d
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
lea edi, [ecx - 1]
mov ebx, ecx
and ebx, 3
je 0x40feac
mov dword [esi + 0x24], edi
xor edi, edi
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x10]
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov word [ebx], cx
add ebx, 2
inc edi
cmp dword [esi + 0xc], edi
jne 0x40fe85
mov ecx, dword [esi + 0x18]
sub ecx, edi
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x24]
jmp 0x40feaf
mov ebx, dword [esi + 0x10]
cmp edi, 3
jb 0x40ff0d
mov edi, ecx
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov ecx, edi
mov word [ebx + 6], dx
add ebx, 8
add ecx, 0xfffffffc
jne 0x40feb4
mov edx, dword [esi + 0x14]
movzx eax, word [edx]
test ax, ax
je 0x40ff2b
mov ecx, edx
add ecx, 2
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ff1a
mov word [ebx], 0
jmp dword [0x444630]
push edx
call fcn.00409640
add esp, 4
mov edi, dword [esi + 0x10]
sub ebx, edi
mov eax, 0xffffffff
cmp ebx, 0xfffffffe
jl 0x40ff53
add ebx, 2
mov eax, ebx
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 0x38], eax
push eax
push edi
call fcn.004376e0
add esp, 8
jmp dword [0x444638]
push edi
call fcn.00409640
add esp, 4
mov edx, dword [esi + 0x30]
mov eax, edx
jmp dword [0x444640]
mov edx, dword [esi + 0x30]
mov eax, edx
jmp dword [0x444640]
mov ebx, edx
jmp 0x41017e
mov dword [esi + 0x10], ebx
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40ffa6
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov ebx, dword [esi + 0x30]
jae 0x410004
mov edx, dword [esi + 0x24]
cmp ebx, dword [esi + 0x10]
jae 0x410004
mov edx, dword [esi + 0x24]
cmp byte [ebx], 0
je 0x410004
lea eax, [esi + 4]
push eax
mov edi, dword [esi + 0x10]
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x14]
jae 0x410004
add ebx, eax
cmp ebx, edi
jb 0x40ffd3
mov word [edx], 0
mov ecx, dword [esi + 0x58]
push 1
call fcn.00409e90
xor edi, edi
jmp 0x41001b
mov edi, dword [esi + 0x14]
inc edi
mov eax, dword [esi + 0x1c]
push eax
call fcn.004034c0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x444650]
mov dword [esi + 0x14], edi
push edi
push dword [esi + 0x1c]
call fcn.004034a0
add esp, 8
push eax
call fcn.00403220
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444660]
mov ecx, eax
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x410060
mov ebx, edi
mov dword [esi + 0xc], eax
sub ebx, eax
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41007d
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + ebx*2]
mov edx, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esi + 0xc]
jae 0x4100de
mov edx, dword [esi + 0x18]
cmp ebx, edi
jae 0x4100de
mov edx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4100de
lea eax, [esi + 4]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x10]
jae 0x4100de
add ebx, eax
cmp ebx, edi
jb 0x4100b0
mov word [edx], 0
push 0
push 0
push dword [esi + 0x28]
push dword [esi + 0x20]
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x38]
push dword [esi + 0x24]
push dword [esi + 0x58]
call fcn.0041a000
add esp, 0x20
jmp dword [0x444668]
push edi
call fcn.00409640
add esp, 4
jmp case.0x410618.19
jmp dword [0x444658]
push dword [esi + 0x24]
call fcn.00409640
add esp, 4
jmp dword [0x444670]
jmp dword [0x444670]
push dword [esi + 0x38]
call fcn.00409640
add esp, 4
mov edi, dword [esi + 0x58]
mov ecx, edi
call fcn.0040a730
mov ecx, edi
call fcn.00409ed0
push dword [esi + 0x34]
call fcn.0043a100
add esp, 4
jmp case.0x40cd07.166
jmp dword [0x444574]
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.0x410618.11
push ecx
push edx
call fcn.00412da0
mov edx, dword [esi + 0x30]
add esp, 8
mov eax, edx
mov ebx, eax
lea eax, [ebx + 1]
cmp byte [ebx], 0
jne 0x41017c
push ebx
push edx
call fcn.00412da0
mov edx, dword [esi + 0x30]
add esp, 8
mov edi, eax
mov eax, edx
jmp dword [0x44464c]
inc edx
mov dword [esi + 0x20], edx
mov edi, dword [esi + 0x38]
push edi
call fcn.004034c0
add esp, 4
xor ecx, ecx
mov edx, dword [esi + 0x20]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x444540]
push edx
push edi
mov edi, edx
call fcn.004034a0
add esp, 8
push eax
call fcn.00403220
mov edx, edi
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444550]
mov dword [esi + 0x18], eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne 0x4101f0
mov dword [esi + 0xc], ecx
sub ecx, dword [esi + 0x18]
mov eax, ecx
and eax, 1
mov edx, ecx
mov dword [esi + 0x30], ecx
xor ecx, 1
lea eax, [ecx + eax*2]
lea ecx, [eax + eax]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x24], eax
test eax, eax
jns 0x410222
mov dword [esi + 0x28], 0xffffffff
jmp dword [0x44455c]
push edi
mov edi, edx
call fcn.00409640
mov edx, edi
add esp, 4
jmp case.0x40cd07.127
push dword [esi + 0x28]
call fcn.00409630
add esp, 4
mov ecx, eax
mov dword [esi + 4], 0
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax*2]
add eax, 0xfffffffe
mov ebx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], eax
cmp ecx, eax
jae 0x410340
mov ebx, dword [esi + 0x14]
mov eax, dword [esi + 0xc]
cmp dword [esi + 0x18], eax
jae 0x410340
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x30]
add eax, edi
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x410340
lea eax, [esi + 4]
push eax
push dword [esi + 0x1c]
push edi
call fcn.0040d1f0
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi + 0x10]
jae 0x410340
add edi, eax
cmp edi, dword [esi + 0xc]
jb 0x410310
nop
nop
nop
nop
nop
mov word [ebx], 0
jmp dword [0x444564]
xor eax, eax
cmp dword [esi + 0xe0], 0
setg al
push 0
push eax
push dword [esi + 0xe8]
push dword [esi + 0xe4]
mov edi, dword [esi + 0x14]
push edi
push dword [esi + 0x70]
push dword [esi + 0x34]
push dword [esi + 0x5c]
call fcn.0041a000
add esp, 0x20
mov edx, dword [esi + 0x20]
jmp dword [0x444568]
jmp dword [0x444548]
jmp dword [0x4445f0]
push edi
call fcn.00409640
add esp, 4
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00409640
add esp, 4
jmp dword [0x4445fc]
mov ecx, dword [esi + 0x40]
push 0x400
call fcn.0043a3e0
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444600]
mov eax, dword [esi + 0x54]
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 4], 0x78797e7f
lea ecx, [esi + 8]
mov byte [ecx + 2], 0
mov word [ecx], 0
mov dword [esi + 0x2c], 0
mov ecx, dword [esi + 0x2c]
cmp ecx, 6
ja 0x410431
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x2c]
movzx edx, byte [esi + edx + 4]
lea edi, [ecx + edx]
add edi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0xaa
mov edx, dword [esi + 0x2c]
mov byte [esi + edx + 4], cl
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
cmp ecx, 7
jb 0x4103f8
mov ecx, dword [esi + 4]
mov edx, dword [0x449d34]
test edx, edx
je case.default.0x4104a2
xor edi, edi
mov ebx, dword [0x449d38]
cmp dword [ebx + edi*8], 0x1b788dcf
je 0x410456
inc edi
cmp edx, edi
jne 0x410446
jmp case.default.0x4104a2
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
jne 0x41047d
xor eax, eax
cmp ecx, 0xc0000004
sete al
jmp dword [eax*4 + 0x444608]
mov ecx, dword [esi + 0x40]
call fcn.0043a550
jmp case.0x40ead1.1
push dword [esi + 0x54]
push 0
push 0
push 0x2b
push eax
push 5
push dword [0x449d3c]
push edx
call fcn.0043c4a0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x444608]
mov edi, dword [esi + 0x54]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.0043a080
add esp, 4
mov dword [esi + 0x34], eax
mov edx, dword [edi]
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov dword [esi + 4], 0x78797e7f
lea eax, [esi + 8]
mov byte [eax + 2], 0
mov word [eax], 0
add edx, 2
mov dword [esi + 0x2c], 0
mov eax, dword [esi + 0x2c]
cmp eax, 6
ja 0x410523
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
movzx ecx, byte [esi + ecx + 4]
lea edi, [eax + ecx]
add edi, 0xb467992a
add eax, 0xb467992a
and eax, ecx
add eax, eax
sub edi, eax
mov dword [esi], edi
mov eax, dword [esi]
add al, 0xaa
mov ecx, dword [esi + 0x2c]
mov byte [esi + ecx + 4], al
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
cmp eax, 7
jb 0x4104ec
mov eax, dword [esi + 4]
mov edi, dword [0x449d34]
test edi, edi
je case.default.0x410571
xor ebx, ebx
mov ecx, dword [0x449d38]
cmp dword [ecx + ebx*8], 0x1b788dcf
je 0x410548
inc ebx
cmp edi, ebx
jne 0x410538
jmp case.default.0x410571
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
je case.default.0x410571
push 0
push edx
push dword [esi + 0x34]
push 0x2b
push dword [esi + 0xc]
push 5
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x20
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444610]
mov ecx, dword [esi + 0x24]
mov eax, ecx
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x41057d
mov ebx, edi
sub ebx, ecx
mov eax, ebx
inc eax
mov dword [esi + 0x38], eax
lea eax, [ebx + ebx + 2]
jns 0x41059a
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + ebx*2]
mov edx, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esi + 0x24]
jae 0x4105f4
mov edx, dword [esi + 0x14]
cmp ebx, edi
jae 0x4105f4
mov edx, dword [esi + 0x14]
cmp byte [ebx], 0
je 0x4105f4
lea eax, [esi + 4]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x10]
jae 0x4105f4
add ebx, eax
cmp ebx, edi
jb 0x4105c6
mov word [edx], 0
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ecx
add eax, 0xfffffffe
xor edx, edx
mov dword [esi + 0xc], ecx
cmp eax, ecx
setae dl
mov edi, eax
mov ecx, eax
jmp dword [edx*4 + 0x444618]
mov word [edi], 0x38b3
mov eax, dword [esi + 0x74]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
mov edx, edi
ja 0x410675
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 [edx + ecx]
add eax, 0x6e774bb4
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x410650
push 2
push edx
push dword [esi + 0xc]
mov edi, edx
call fcn.00403460
add esp, 0xc
jmp dword [0x4445c8]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0xc]
jmp dword [ecx*4 + 0x4445d0]
mov edx, dword [esi + 0x98]
mov word [edx], 0x7114
mov eax, dword [esi + 0x104]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x4106f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xc5cff668
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xe8
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x4106d0
push 3
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4445d8]
jmp case.0x40ead1.1
mov word [edi], 0x38b3
mov eax, dword [esi + 0x74]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
mov edx, edi
mov edi, dword [esi + 0xc]
ja 0x410765
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x6e774bb4
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x410740
push 2
push edx
push edi
mov edi, edx
call fcn.00403460
add esp, 0xc
jmp case.0x40ef08.3
mov edx, dword [esi + 0x158]
mov word [edx], 0xf4e0
mov byte [edx + 2], 8
mov dword [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x4107c5
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x487f5c6
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x40
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x4107a0
push 3
push edx
push edi
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4445e0]
mov edx, dword [esi + 0x154]
mov word [edx], 0x18f0
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410825
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x18f4aa5a
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xbd
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410800
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x88]
mov word [edi], 0x57a6
mov eax, dword [esi + 0xec]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
mov ebx, dword [esi + 0x80]
ja 0x410891
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x9e]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4769359e
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x38
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x410860
push edi
push dword [esi + 0xc]
call fcn.004031e0
add esp, 8
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x150]
mov word [edi], 0xff8b
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x4108f1
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xf0]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x71d7f2f0
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xf2
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x4108c0
push edi
mov edi, dword [esi + 0xc]
push edi
call fcn.004032b0
add esp, 8
mov dword [esi + 0x1c], eax
mov edx, dword [esi + 0x14c]
mov word [edx], 0xa65f
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410945
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x35ed693f
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0x1a
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410920
push edx
push edi
call fcn.004031e0
add esp, 8
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x84]
mov word [edx], 0x58bd
mov eax, dword [esi + 0xf0]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x4109a5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x99a1ea0a
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xad
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x410980
push edx
push edi
call fcn.00403240
add esp, 8
mov word [ebx], 0xabd9
mov byte [ebx + 2], 0x21
mov eax, dword [esi + 0xf4]
mov word [eax], 0
mov byte [eax + 2], 0
fnstcw word [esi + 0x4c]
movzx eax, word [esi + 0x4c]
or eax, 0xc00
mov word [esi + 0x6c], ax
fldcw word [esi + 0x6c]
fistp dword [esi + 0x188]
fldcw word [esi + 0x4c]
mov eax, dword [esi + 0x188]
mov dword [esi + 0x28], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410a30
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
mov edx, eax
and edx, 0xed063f6a
xor eax, 0x6d063f6a
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xb3
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410a00
push ebx
push edi
call fcn.00403240
add esp, 8
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x410a50
fnstcw word [esi + 0x4a]
movzx eax, word [esi + 0x4a]
or eax, 0xc00
mov word [esi + 0x6a], ax
fldcw word [esi + 0x6a]
fistp dword [esi + 0x184]
fldcw word [esi + 0x4a]
mov eax, dword [esi + 0x184]
mov dword [esi + 0x20], eax
lea eax, [edi + 2]
test ebx, ebx
jns 0x410a8d
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
add edi, eax
mov edx, eax
mov dword [esi + 0x14], eax
cmp eax, edi
mov ecx, dword [esi + 0x18]
jae 0x410af2
lea eax, [ecx + ebx]
dec eax
mov edx, dword [esi + 0x14]
cmp ecx, eax
jae 0x410af2
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
cmp byte [ecx], 0
je 0x410af2
mov ebx, eax
lea eax, [esi + 4]
push eax
push ebx
push ecx
mov ebx, ecx
mov dword [esi + 0xc], edx
call fcn.0040d1f0
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 4]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x410af2
add ebx, eax
mov eax, dword [esi + 0x10]
cmp ebx, eax
mov ecx, ebx
jb 0x410abc
mov word [edx], 0
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov edi, dword [esi + 0x14]
push edi
call fcn.0043a1a0
jmp dword [0x4445e8]
jmp dword [0x444590]
push dword [esi + 0x70]
call fcn.00409640
add esp, 4
mov edi, dword [esi + 0x5c]
mov ecx, edi
call fcn.0040a730
jmp case.0x40f777.16
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x410b49
mov edx, eax
jmp 0x410b3d
xor ebx, ebx
cmp edx, ecx
mov dword [esi + 0x10], edx
jbe 0x410b92
cmp byte [ecx], 0
je 0x410b92
xor ebx, ebx
mov edi, dword [esi + 0x14]
nop
nop
nop
nop
mov dword [esi + 4], 0
lea eax, [esi + 4]
push eax
push edx
push edi
call fcn.0040d1f0
mov edx, dword [esi + 0x10]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x410b92
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410b60
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x410ba0
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esi + 4], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 0xc], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x1c], ecx
cmp eax, ecx
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
jae 0x410c0e
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
cmp edi, ebx
jae 0x410c0e
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x410c0e
lea eax, [esi + 4]
push eax
push ebx
push edi
call fcn.0040d1f0
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 + 0x1c]
jae 0x410c0e
add edi, eax
cmp edi, ebx
jb 0x410be0
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov ecx, dword [esi + 0x5c]
push 1
call fcn.00409e90
mov dword [esi + 0x20], 0
jmp case.0x40cd07.124
push dword [esi + 0x34]
call fcn.00409640
add esp, 4
jmp dword [0x44457c]
mov eax, dword [case.0x40cd07.87]
nop
nop
nop
mov dl, 1
jmp eax
push eax
push eax
mov eax, esp
sub esp, 8
mov ebx, esp
sub esp, 8
mov dword [esi + 0xd0], esp
sub esp, 8
mov dword [esi + 0x178], esp
sub esp, 8
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x170], esp
push eax
mov dword [esi + 0x16c], esp
push eax
mov dword [esi + 0x168], esp
sub esp, 8
mov dword [esi + 0x94], esp
sub esp, 8
mov dword [esi + 0x90], esp
push eax
mov dword [esi + 0x164], esp
sub esp, 8
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x160], esp
push eax
mov dword [esi + 0x15c], esp
push eax
mov dword [esi + 0x7c], esp
sub esp, 0x68
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x5c], ecx
mov esp, ecx
push eax
push eax
mov dword [esi + 0xb8], esp
sub esp, 8
mov dword [esi + 0xa4], esp
sub esp, 8
mov dword [esi + 0xa0], esp
sub esp, 8
mov dword [esi + 0x9c], esp
sub esp, 8
mov dword [esi + 0x98], esp
sub esp, 8
mov dword [esi + 0x158], esp
sub esp, 8
mov dword [esi + 0x154], esp
sub esp, 8
mov dword [esi + 0x88], esp
sub esp, 8
mov dword [esi + 0x150], esp
sub esp, 8
mov dword [esi + 0x14c], esp
sub esp, 8
mov dword [esi + 0x84], esp
sub esp, 8
mov dword [esi + 0x80], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x54], esp
sub esp, 0x68
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x58], ecx
mov esp, ecx
push eax
push eax
mov dword [esi + 0xcc], esp
sub esp, 8
mov dword [esi + 0xc8], esp
sub esp, 8
mov dword [esi + 0xb4], esp
sub esp, 8
mov dword [esi + 0xdc], esp
sub esp, 8
mov dword [esi + 0xd8], esp
sub esp, 8
mov dword [esi + 0x180], esp
sub esp, 0x68
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xbc], ecx
mov esp, ecx
push eax
sub esp, 8
mov dword [esi + 0x174], esp
sub esp, 8
mov dword [esi + 0x3c], esp
sub esp, 0x50
mov dword [esi + 0x50], esp
sub esp, 8
mov dword [esi + 0xc4], esp
sub esp, 8
mov dword [esi + 0xc0], esp
sub esp, 8
mov dword [esi + 0xb0], esp
sub esp, 8
mov dword [esi + 0x17c], esp
sub esp, 8
mov dword [esi + 0x60], esp
sub esp, 8
mov dword [esi + 0xd4], esp
sub esp, 0x68
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xac], ecx
mov esp, ecx
mov word [eax], 0xa80c
mov dword [eax + 2], 0
mov byte [eax + 6], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 6
ja 0x410e97
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [eax + edx]
add ecx, 0x227111cb
xor ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x9c
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 7
jb 0x410e70
push eax
push edi
call fcn.004032b0
add esp, 8
jmp dword [0x44449c]
xor ecx, ecx
test eax, eax
sete cl
xor edx, edx
jmp dword [ecx*4 + 0x4444a0]
mov edi, eax
mov eax, dword [esi + 0x3c]
inc eax
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x80]
add eax, 3
mov dword [esi + 0xf4], eax
mov eax, dword [esi + 0x84]
add eax, 2
mov dword [esi + 0xf0], eax
mov eax, dword [esi + 0x88]
add eax, 2
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x98]
add eax, 2
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0x9c]
add eax, 2
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0xa0]
add eax, 2
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0xa4]
add eax, 2
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0xb8]
add eax, 2
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 0xd4]
add eax, 3
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0x60]
add eax, 3
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0xb0]
add eax, 3
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0xc0]
add eax, 2
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0xc4]
add eax, 2
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0xd8]
add eax, 3
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0xb4]
add eax, 3
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0xc8]
add eax, 2
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0xcc]
add eax, 2
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x8c]
add eax, 2
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x90]
add eax, 2
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0x94]
add eax, 2
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0xa8]
add eax, 2
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0xd0]
add eax, 2
mov dword [esi + 0x130], eax
mov dword [esi + 0x140], ebx
mov dword [esi + 0x144], edi
xor edi, edi
jmp 0x40e447
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
lea ebx, [esp + 0x42]
mov dword [esp + 0x28], edi
jmp 0x411071
inc esi
push edi
call fcn.004034c0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x444758]
push esi
push edi
call fcn.004034d0
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x10c], 0xe452
mov dword [esp + 0x10e], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 5
ja 0x411118
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0x52d2794d
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x56
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 6
jb 0x4110d0
push 2
lea eax, [esp + 0x110]
push eax
push dword [esp + 0x2c]
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444760]
mov word [esp + 0x40], 0x5e4f
mov byte [esp + 0x42], 0xd3
mov byte [ebx + 5], 0
mov dword [ebx + 1], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x4111a9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xe543c26d
xor eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x44
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x411170
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x2c]
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444768]
mov dword [esp + 8], 0xd5b9
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 3
ja 0x411229
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x26e218d0
xor eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xfc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 4
jb 0x4111f0
push 3
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x2c]
call fcn.00403460
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444770]
mov word [esp + 0x10c], 0x3189
mov dword [esp + 0x10e], 0
mov dword [esp + 0x3c], esi
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 5
ja 0x4112c8
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0x4e03b4d7
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x17
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 6
jb 0x411280
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x28]
call fcn.004031e0
add esp, 8
mov word [esp + 0x10c], 0x4b58
mov byte [esp + 0x10e], 0xb0
mov dword [esp + 0x10f], 0
mov esi, eax
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 6
ja 0x411368
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0x424a9876
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x38
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 7
jb 0x411320
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x28]
call fcn.00403240
add esp, 8
fnstcw word [esp + 0xa6]
movzx eax, word [esp + 0xa6]
or eax, 0xc00
mov word [esp + 0xf6], ax
fldcw word [esp + 0xf6]
fistp dword [esp + 0x108]
fldcw word [esp + 0xa6]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x38], eax
mov word [esp + 0x10c], 0xa406
lea eax, [esp + 0x10e]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 4
ja 0x411438
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0xc3d12fdb
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x88
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 5
jb 0x4113f0
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x28]
call fcn.00403240
add esp, 8
lea ebx, [esi - 1]
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411450
fnstcw word [esp + 0xa4]
movzx eax, word [esp + 0xa4]
or eax, 0xc00
mov word [esp + 0xf4], ax
fldcw word [esp + 0xf4]
fistp dword [esp + 0x104]
fldcw word [esp + 0xa4]
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], 0
lea eax, [esp + 0x10c]
cmp esi, ebx
jae 0x4114fa
xor edi, edi
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4114ee
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.0040d1f0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esp + edi + 0x10c], cx
lea ecx, [edi + 2]
cmp edi, 0x7fb
ja 0x4114e4
add esi, eax
mov edi, ecx
cmp esi, ebx
jb 0x4114b0
lea eax, [esp + ecx]
add eax, 0x10c
jmp 0x4114f6
lea eax, [esp + edi]
add eax, 0x10c
mov edi, dword [esp + 0x28]
mov word [eax], 0
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.0040ba60
add esp, 0xc
movzx eax, al
mov esi, dword [esp + 0x3c]
lea ebx, [esp + 0x42]
mov edx, dword [esp + 0x38]
jmp dword [eax*4 + 0x444778]
mov eax, dword [case.0x41152b.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ebx, dword [esp + 0xc]
test ebx, ebx
sete al
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x444790]
xor ebx, 1
mov ecx, edx
xor ecx, 2
xor eax, eax
or ecx, ebx
lea ebx, [esp + 0x42]
sete al
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x444868]
mov edi, dword [esp + 0x30]
movzx eax, byte [edi]
xor esi, esi
test al, al
je 0x4115b1
lea ecx, [edi + 1]
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
shr al, 7
movzx eax, al
add esi, eax
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4115a0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x4115bf
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x40], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
mov dword [esp + 0x34], eax
jae 0x41162b
mov esi, eax
test ebx, ebx
jle 0x41162b
add ebx, edi
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41162b
lea eax, [esp + 0x40]
push eax
push ebx
push edi
call fcn.0040d1f0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x41162b
add edi, eax
cmp edi, ebx
jb 0x411600
mov word [esi], 0
mov ecx, dword [esp + 0xf0]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x411648
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], 0xd52bd322
mov dword [esp + 0x44], 0xe90dd721
mov dword [esp + 0x48], 0xed1feb18
mov dword [esp + 0x4c], 0xe105ef16
mov dword [esp + 0x50], 0xe518e31e
mov dword [esp + 0x54], 0xf9c5e7c6
mov dword [esp + 0x58], 0xfd74fb1f
mov dword [esp + 0x5c], 0xf113ff1b
mov dword [esp + 0x60], 0xf516f3d2
mov dword [esp + 0x64], 0x8978f77f
mov dword [esp + 0x68], 0x8d7f8b6b
mov dword [esp + 0x6c], 0x81a08f7d
mov word [esp + 0x70], 0x8382
lea ebx, [esp + 0x42]
mov byte [ebx + 0x32], 0
mov word [ebx + 0x30], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x34
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
ja 0x411729
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x4525fe9a
xor eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xb8
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x35
jb 0x4116f0
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0x2c]
test cx, cx
je 0x411751
mov edx, ebx
mov eax, dword [esp + 0x2c]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x411740
mov word [eax], 0
mov edx, dword [esp + 0x34]
movzx ecx, word [edx]
test cx, cx
je 0x411781
add edx, 2
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 0x411770
mov word [eax], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0x38]
jmp dword [0x444870]
push dword [esp + 0x34]
call fcn.00409640
mov edx, dword [esp + 0x3c]
add esp, 4
jmp case.0x412253.29
mov word [esp + 0x40], 0x58a9
mov dword [esp + 0x42], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 5
ja 0x411814
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add eax, 0x1a
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x18005b1a
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xbd
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 6
jb 0x4117d0
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x28]
call fcn.004031e0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444798]
mov dword [esp + 0x10], 0xa62a292a
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 3
mov ebx, 0x38e38e39
ja 0x4118a2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0x789e5785
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x51
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 4
jb 0x411860
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
call fcn.00409de0
add esp, 4
call fcn.00409df0
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x4447a8]
call fcn.00409df0
mov ecx, eax
imul ebx
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 [esp + edi*2 + 0xa8], ax
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x4447a8]
jmp dword [0x4447b4]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x411920
xor edi, edi
cmp ebx, eax
jbe 0x411973
mov dword [esp + 0xc], eax
cmp byte [eax], 0
je 0x411977
xor edi, edi
mov esi, dword [esp + 0xc]
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.0040d1f0
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [esi + eax]
cmp ecx, ebx
jae 0x411977
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x411940
jmp 0x411977
mov dword [esp + 0xc], eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411985
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
cmp eax, ecx
mov esi, dword [esp + 0xc]
jae 0x4119f3
mov edx, dword [esp + 0x34]
cmp esi, ebx
jae 0x4119f3
mov edx, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4119f3
lea eax, [esp + 0x40]
push eax
push ebx
push esi
mov dword [esp + 0x18], edx
call fcn.0040d1f0
mov edx, dword [esp + 0x18]
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x2c]
jae 0x4119f3
add esi, eax
cmp esi, ebx
jb 0x4119c0
mov word [edx], 0
lea eax, [esp + 0x40]
push eax
push 0
push 0
push edi
push dword [esp + 0x44]
push 0
call dword [0x449d30]
mov esi, dword [esp + 0x40]
lea eax, [esi + esi]
test esi, esi
jns 0x411a1e
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
lea ebx, [esp + 0x42]
mov ecx, eax
lea eax, [esp + 0x40]
push eax
push esi
mov esi, ecx
push ecx
push edi
mov edi, dword [esp + 0x44]
push edi
push 0
call dword [0x449d30]
jmp dword [0x4447a0]
push edi
call fcn.00409640
add esp, 4
mov edi, dword [esp + 0x28]
mov edx, esi
jmp 0x41210c
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
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 + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xc9be8534
push dword [0x449d28]
call fcn.0043da70
add esp, 8
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x4c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448d0]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], 0x78797e7f
lea ecx, [esp + 0x12]
mov byte [ecx + 4], 0
mov word [ecx + 2], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 6
ja 0x411ba2
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0xaa
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 7
jb 0x411b60
mov ecx, dword [0x449d34]
test ecx, ecx
je case.0x412253.60
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x449d38]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x411bd0
inc esi
cmp ecx, esi
jne 0x411bc0
jmp case.0x412253.60
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x411bf2
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
mov word [esp + edi*2 + 0xa8], 0
mov dword [esp + 0x10], 0x6abd6882
mov dword [esp + 0x14], 0x6ea06cae
mov dword [esp + 0x18], 0x729470bf
mov dword [esp + 0x1c], 0x767574af
mov word [esp + 0x20], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x11
ja 0x411c93
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0xc3e087
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x20
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x12
jb 0x411c60
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x40]
test ax, ax
je 0x411cc1
lea ecx, [esp + 0x12]
lea esi, [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411cb0
mov word [esi], 0
movzx eax, word [esp + 0xa8]
test ax, ax
je 0x411cf1
lea ecx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411ce0
mov word [esi], 0
lea eax, [esp + 0x40]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xa0]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x449d30]
mov ebx, dword [esp + 0xa0]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x411d2b
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
mov ecx, eax
lea eax, [esp + 0xa0]
push eax
push ebx
mov dword [esp + 0x14], ecx
push ecx
push esi
lea eax, [esp + 0x50]
push eax
push 0
call dword [0x449d30]
lea ebx, [esp + 0x42]
jmp dword [0x4447bc]
mov word [esp + edi*2 + 0xa8], 0
mov dword [esp + 0x10], 0x6abd6882
mov dword [esp + 0x14], 0x6ea06cae
mov dword [esp + 0x18], 0x729470bf
mov dword [esp + 0x1c], 0x767574af
mov word [esp + 0x20], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x11
ja 0x411dd3
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0xc3e087
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x20
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x12
jb 0x411da0
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x40]
test ax, ax
je 0x411e01
lea ecx, [esp + 0x12]
lea esi, [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411df0
mov word [esi], 0
movzx eax, word [esp + 0xa8]
test ax, ax
je 0x411e31
lea ecx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411e20
mov word [esi], 0
lea eax, [esp + 0x40]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xa0]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x449d30]
mov ebx, dword [esp + 0xa0]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x411e6b
mov eax, 0xffffffff
push eax
call fcn.00409630
add esp, 4
lea ecx, [esp + 0xa0]
push ecx
push ebx
push eax
push esi
lea eax, [esp + 0x50]
push eax
push 0
call dword [0x449d30]
jmp case.0x4118c7.3
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4447c0]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
jmp dword [eax*4 + 0x4447c8]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x4447d0]
jmp 0x41210c
mov dword [esp + 0x10], 0x65016734
mov dword [esp + 0x14], 0x690d6bf2
mov word [esp + 0x18], 0x6f6e
lea eax, [esp + 0x12]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xe
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
ja 0x411f43
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0x94c804f4
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x6e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xf
jb 0x411f10
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x411f50
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x412107
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x411f70
jmp 0x412101
mov dword [esp + 0x10], 0x4baeb586
mov dword [esp + 0x14], 0x4fb249b4
mov word [esp + 0x18], 0x4d4c
mov dword [esp + 0x1a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x411ff3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0x57c39e7e
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x36
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x411fc0
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412000
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x412107
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x412020
jmp 0x412101
mov dword [esp + 0x10], 0x308332df
mov dword [esp + 0x14], 0x34c63686
mov word [esp + 0x18], 0x3a35
mov dword [esp + 0x1a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x4120ba
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0x13da4fcf
add eax, 0x13da4fcf
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x1e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x412070
mov edx, dword [esp + 0xc]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4120d0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x412107
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4120f0
add eax, edx
mov edx, dword [esp + 0xc]
mov word [eax], 0
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x24], edx
push edx
call fcn.0043e440
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4447d8]
jmp 0x412228
push 0
push dword [esp + 0xf4]
push dword [esp + 0x38]
push dword [esp + 0x10]
call fcn.0043ebc0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], 0x78797e7f
mov byte [ebx + 4], 0
mov word [ebx + 2], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 6
ja 0x4121d8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x40]
lea edi, [ecx + edx]
add edi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 0xa8], edi
mov ecx, dword [esp + 0xa8]
add cl, 0xaa
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 7
jb 0x412190
mov ecx, dword [0x449d34]
test ecx, ecx
je 0x412200
mov edx, dword [esp + 0x40]
xor edi, edi
mov ebx, dword [0x449d38]
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x412206
inc edi
cmp ecx, edi
jne 0x4121f0
jmp case.default.0x412253
mov edi, dword [esp + 0x28]
jmp 0x412228
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x412253
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
mov edi, dword [esp + 0x28]
lea ebx, [esp + 0x42]
push dword [esp + 0x30]
call fcn.0043a100
add esp, 4
mov dword [esp + 0x30], 0
not esi
shr esi, 0x1f
mov dword [esp + 0x2c], 0
xor eax, eax
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
jmp dword [esi*4 + 0x4447e0]
xor eax, eax
cmp edx, 1
sete al
jmp dword [eax*4 + 0x4447e8]
xor eax, eax
cmp edx, 2
sete al
mov esi, eax
mov eax, 1
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0xc]
jmp dword [esi*4 + 0x444848]
mov edx, ecx
nop
nop
nop
mov eax, edx
add edx, 2
cmp word [eax], 0
jne 0x412290
sub eax, ecx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x4122aa
mov ecx, 0xffffffff
push ecx
call fcn.00409630
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0xa8], 0x6b6a6d52
lea eax, [esp + 0xaa]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 6
ja 0x412329
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xa8]
add eax, 0x70335922
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xb2
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 7
jb 0x4122f0
mov dword [esp + 0x40], 0xeb59e95e
mov dword [esp + 0x44], 0xf75bf553
mov dword [esp + 0x48], 0xf34df144
mov dword [esp + 0x4c], 0xff53fd5a
mov dword [esp + 0x50], 0xfb4cf94a
mov dword [esp + 0x54], 0xc733c51a
mov dword [esp + 0x58], 0xc378c169
mov dword [esp + 0x5c], 0xcf61cd6d
mov dword [esp + 0x60], 0xcb6ac92e
mov dword [esp + 0x64], 0xd764d571
mov dword [esp + 0x68], 0xd36dd175
mov dword [esp + 0x6c], 0xdf3cdd6f
mov dword [esp + 0x70], 0xdb76d929
mov dword [esp + 0x74], 0xa746a53a
mov word [esp + 0x78], 0xa1a6
mov byte [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x3e
mov esi, dword [esp + 0x3c]
ja 0x4123f3
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x2c9b138b
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x9b
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x3f
jb 0x4123c0
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0x2c]
test cx, cx
je 0x412421
mov edx, ebx
mov eax, dword [esp + 0x2c]
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 0x412410
mov word [eax], 0
mov edx, dword [esp + 0xc]
movzx ecx, word [edx]
test cx, cx
je 0x412451
add edx, 2
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 0x412440
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x412481
lea edx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412470
mov word [eax], 0
mov eax, 1
mov edx, dword [esp + 0x38]
jmp dword [eax*4 + 0x444850]
mov word [esp + 0x40], 0x1b62
mov byte [esp + 0x42], 0xb6
mov byte [ebx + 5], 0
mov dword [ebx + 1], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x4124f9
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xb184e55e
xor eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x2a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x4124c0
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x28]
call fcn.004031e0
add esp, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], 0x5bccf4
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 3
ja 0x41257f
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add eax, 0xa7
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x95647ca7
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0xe
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 4
jb 0x412530
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x28]
call fcn.004031e0
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
mov ecx, dword [esp + 0xc]
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4125bf
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x34]
test ecx, ecx
setne bl
mov dword [esp + 0xfc], ebx
jmp dword [ebx*4 + 0x4447f0]
xor ebx, ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xec], ecx
jmp dword [ecx*4 + 0x444808]
mov ecx, edx
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x4125e0
sub esi, edx
inc esi
jmp 0x412614
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.default.0x41260b
sub ebx, dword [esp + 0x34]
inc ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xec], ecx
jmp dword [ecx*4 + 0x444808]
xor esi, esi
mov dword [esp + 0x38], edx
add eax, ebx
lea ecx, [esi + eax]
add ecx, 0xa
add eax, esi
lea eax, [eax*2 + 0x14]
test ecx, ecx
jns 0x412632
mov eax, 0xffffffff
mov dword [esp + 0xf8], esi
push eax
call fcn.00409630
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], 0x78ee46d5
mov dword [esp + 0x44], 0x7c997ae5
mov dword [esp + 0x48], 0x70ed7ee3
mov dword [esp + 0x4c], 0x74a772a6
mov word [esp + 0x50], 0x7677
mov dword [esp + 0x52], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x15
ja 0x4126c9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xcc32169e
xor eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x27
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x16
jb 0x412690
movzx eax, word [esp + 0x40]
mov esi, dword [esp + 0x2c]
test ax, ax
mov edx, dword [esp + 0xc]
je 0x412701
lea ecx, [esp + 0x42]
mov esi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4126f0
mov dword [esi], 0x220020
add esi, 4
movzx eax, word [edx]
test ax, ax
je 0x412731
lea ecx, [edx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412720
lea eax, [esi + 2]
mov dword [esp + 0x24], eax
mov word [esi], 0x22
jmp dword [0x444810]
jmp dword [0x444818]
push edx
call fcn.00409640
mov edx, dword [esp + 0x10]
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edx
call fcn.00409640
mov edx, dword [esp + 0x10]
add esp, 4
jmp dword [0x444824]
mov eax, dword [esp + 0xfc]
jmp dword [eax*4 + 0x444828]
lea ebx, [esp + 0x42]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0x24]
jmp dword [eax*4 + 0x444830]
mov eax, dword [esp + 0x24]
mov word [eax], 0x2c
mov edx, dword [esp + 0x34]
lea edi, [edx - 1]
mov ecx, dword [esp + 0x38]
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x4127b0
lea eax, [esi + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], 0
cmp ebx, 2
jl 0x412821
cmp edx, edi
jae 0x412821
lea eax, [esi + ebx*2]
add eax, 2
mov dword [esp + 0xc], eax
lea ebx, [esp + 0x42]
nop
cmp byte [edx], 0
je 0x412825
lea eax, [esp + 0x40]
push eax
push edi
push edx
mov esi, edx
call fcn.0040d1f0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x24]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0xc]
jae 0x412ad2
add esi, eax
cmp esi, edi
mov ecx, dword [esp + 0x38]
mov edx, esi
jb 0x4127e0
jmp 0x412825
lea ebx, [esp + 0x42]
mov edx, dword [esp + 0x24]
mov word [edx], 0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0xec]
jmp dword [eax*4 + 0x444830]
mov word [edx], 0x2c
lea edi, [ecx - 1]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x412850
lea esi, [edx + 2]
mov dword [esp + 0x40], 0
cmp dword [esp + 0xf8], 2
jl 0x4128af
cmp ecx, edi
jae 0x4128af
mov eax, dword [esp + 0xf8]
lea eax, [edx + eax*2]
mov dword [esp + 0x24], eax
cmp byte [ecx], 0
je 0x4128af
lea eax, [esp + 0x40]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040d1f0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x4128af
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x412880
mov word [esi], 0
mov edi, dword [esp + 0x28]
lea ebx, [esp + 0x42]
nop
nop
nop
nop
mov eax, 1
xor ecx, ecx
xor edx, edx
jmp dword [0x444840]
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x444850]
mov eax, dword [case.0x412253.41]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edx, edx
setle al
jmp dword [eax*4 + 0x444888]
xor eax, eax
cmp edx, 2
setl al
jmp dword [eax*4 + 0x444890]
sete al
movzx eax, al
jmp dword [eax*4 + 0x444898]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4448a0]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x4448a8]
jmp dword [0x4448bc]
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
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 + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xc9be8534
push dword [0x449d28]
call fcn.0043da70
add esp, 8
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x4c]
push dword [esp + 0x30]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448b0]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], 0x78797e7f
lea ecx, [esp + 0x12]
mov byte [ecx + 4], 0
mov word [ecx + 2], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 6
ja 0x412a82
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0xaa
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 7
jb 0x412a40
mov ecx, dword [0x449d34]
test ecx, ecx
je case.0x412253.52
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x449d38]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x412ab0
inc esi
cmp ecx, esi
jne 0x412aa0
jmp case.0x412253.52
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x412adb
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
mov ecx, dword [esp + 0x38]
jmp 0x412825
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448d8]
xor eax, eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4448f0]
push ecx
call fcn.00409640
add esp, 4
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
jmp dword [eax*4 + 0x4448f8]
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
jmp dword [eax*4 + 0x4448f8]
push dword [esp + 0x2c]
call fcn.00409640
add esp, 4
inc esi
jmp 0x411071
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448c8]
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x40], 0x78797e7f
mov byte [ebx + 4], 0
mov word [ebx + 2], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 6
ja 0x412bf2
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add esi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0xaa
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 7
jb 0x412bb0
mov ecx, dword [0x449d34]
test ecx, ecx
je 0x412c48
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x449d38]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e28bda7
je 0x412c20
inc esi
cmp ecx, esi
jne 0x412c10
jmp 0x412c48
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x412c48
lea edx, [esp + 0xa8]
push edx
push 0
push eax
push 3
push dword [0x449d3c]
push ecx
mov esi, eax
call fcn.0043c4a0
mov eax, esi
add esp, 0x18
mov dword [esp + 0x40], 0x78797e7f
mov byte [ebx + 4], 0
mov word [ebx + 2], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 6
ja 0x412cb2
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add esi, 0xb467992a
add ecx, 0xb467992a
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0xaa
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 7
jb 0x412c70
mov ecx, dword [0x449d34]
test ecx, ecx
je case.default.0x412d3b
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x449d38]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x412ce0
inc esi
cmp ecx, esi
jne 0x412cd0
jmp case.default.0x412d3b
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x412d16
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
push eax
call fcn.0043a100
add esp, 4
nop
nop
nop
nop
nop
jmp dword [0x4448e8]
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x4448d8]
push 0x46483752
push dword [0x449d28]
call fcn.0043da70
add esp, 8
push 0
push 0
push dword [esp + 0x38]
push 0x41c230
push 0
push 0
call eax
push 0x46483752
push dword [0x449d28]
call fcn.0043da70
add esp, 8
push 0
push 0
push dword [esp + 0x38]
push 0x41c230
push 0
push 0
call eax
jmp dword [0x4448c0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp dword [0x44496c]
push dword [esp + 0x14]
call fcn.00409640
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 4]
push 0
push eax
push dword [esp + 0x14]
call fcn.0043e940
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44494c]
mov esi, dword [esp + 4]
push esi
call fcn.00409630
add esp, 4
push 0
push esi
mov dword [esp + 0x18], eax
push eax
push dword [esp + 0x18]
call fcn.0043ea20
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444954]
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4130d0
mov ebx, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4130f0
sar eax, 1
sar ecx, 1
add ecx, eax
add ecx, 0x2f9ae52d
mov eax, ecx
and eax, 1
xor ecx, 1
add edi, ecx
lea ecx, [edi + eax*2]
add ecx, 0xd0651ad5
test ecx, ecx
jns 0x413125
mov eax, 0xffffffff
jmp 0x41312f
lea eax, [edi + eax*2]
lea eax, [eax*2 - 0x5f35ca56]
push eax
call fcn.00409630
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x413161
add esi, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x413150
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x413191
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x413180
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [ebp]
test cx, cx
je 0x4131c2
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x4131b0
mov word [eax], 0
mov ecx, dword [esp + 0x30]
push dword [esp + 4]
push dword [esp + 0x14]
push edi
call fcn.00409ee0
mov ebx, eax
jmp dword [0x44495c]
push edi
call fcn.00409640
add esp, 4
jmp dword [0x444964]
jmp dword [0x444964]
push dword [esp + 0x10]
call fcn.00409640
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0x78797e7f
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x413260
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 4]
add ecx, 0xb467992a
xor ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xaa
mov edx, dword [esp]
mov byte [esp + edx + 4], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x413230
mov ecx, dword [0x449d34]
test ecx, ecx
je 0x413298
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x449d38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x413290
inc esi
cmp ecx, esi
jne 0x413280
jmp 0x413298
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x41329e
jmp dword [0x44496c]
push eax
push 1
push dword [0x449d3c]
push ecx
call fcn.0043c4a0
add esp, 0x10
jmp dword [0x44496c]
int 0x40
add byte [0x540040cd], dl
rol dword [eax], 1
fcom st(0)
inc eax
add byte [ebx], bl
int 0x40
add al, bl
rol byte [eax], 1
iretd
add al, 0x41
add byte [ecx + 0x4f004104], ch
add dword [ecx], eax
js 0x44461b
inc ecx
add byte [edx], dh
inc byte [eax]
clc
add al, bh
std
inc eax
add byte [edx], dh
inc byte [eax]
or al, 0xfe
inc eax
add byte [esi], bl
inc byte [eax]
xor bh, dh
inc eax
add byte [esi], dh
inc dword [eax]
aas
inc dword [eax]
outsd dx, dword [esi]
inc dword [eax]
cmp edi, 0x40
add byte [esi + 1694515455], cl
add dword [ecx], eax
add dword gs:[ecx], eax
xchg ebp, eax
inc dword [eax]
push ss
add dword [ecx], eax
xor eax, 0x1c004100
add dword [ecx], eax
sub eax, 0x5b004101
add byte [ecx], al
pop ss
add byte [ecx], al
or byte [ecx], al
inc ecx
add byte [edi], dl
add byte [ecx], al
xor eax, dword [ecx]
inc ecx
add byte [esi], bh
add dword [ecx], eax
retf
cmc
inc eax
add byte [esi - 9], bh
inc eax
add bh, cl
cmc
inc eax
add byte [eax], al
test byte [eax], 0x29
test byte [eax], 0
test byte [eax], 0x3a
test byte [eax], 0xa6
stc
inc eax
add byte [ecx + 0x540040f6], al
test byte [eax], 0x81
test byte [eax], 0x54
test byte [eax], 0xac
stc
inc eax
add byte [ecx - 0xa], ch
inc eax
add byte [ebp - 0x37ffbf07], bh
stc
inc eax
add byte [esi + 0x10], bl
inc ecx
add byte [ebp + ebp + 0x2d940041], dl
inc ecx
add byte [edx + 0x70004110], cl
adc byte [ecx], al
cmp al, 0x11
inc ecx
add byte [eax + 0x10], dh
inc ecx
add dl, cl
adc dword [ecx], eax
dec edx
adc al, byte [ecx]
bound ebp, qword [ebx]
inc ecx
add byte [edx + 0x2b], ah
sub eax, dword [ecx]
xor dl, byte [0x15400041]
sub eax, dword [ecx]
xor dl, byte [0x15400041]
inc ecx
add byte [eax + 0x15], al
inc ecx
add byte [eax + 0x15], al
inc ecx
add byte [edx + 0x15], al
inc ecx
add byte [ebx + 0x15], bl
inc ecx
add byte [ebp + 0x33004117], ch
sbb byte [ecx], al
adc byte [ecx], bl
inc ecx
add byte [edx + 0x1a], cl
inc ecx
add byte [ebx + 0x1a], dl
inc ecx
add byte [edx], cl
sbb dword [ecx], eax
rcr byte [eax], 1
inc ecx
add byte [ebp + ebx + 0x41], bl
add byte [esi], bl
sbb al, 0x41
add byte [ebp + ebx + 0x41], bl
add byte [ecx - 0x5cffbee2], dl
push ds
inc ecx
add dh, cl
push ds
inc ecx
add byte [edx - 0x79ffbee2], bh
pop ds
inc ecx
add cl, cl
push ds
inc ecx
add byte [esi], dh
and byte [ecx], al
cmp al, 0x21
inc ecx
add byte [ecx + 0x21], al
inc ecx
add bh, cl
sub byte [ecx], al
pop edx
and al, byte [ecx]
imul esp, dword [edx], 0x24960041
inc ecx
add dh, al
and eax, 0x25ed0041
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 dh, al
and eax, 0x26120041
inc ecx
add ch, bl
and eax, 0x27430041
inc ecx
add byte [ebx + 0x27], dh
inc ecx
add byte [eax + 0x27], ah
inc ecx
add byte [ecx + 0x27], cl
inc ecx
add byte [eax + 0x27], ah
inc ecx
add byte [ebx + 0x27], dh
inc ecx
add byte [ecx - 0x64ffbed9], al
daa
inc ecx
add al, al
sub byte [ecx], al
inc eax
sub byte [ecx], al
shr byte [eax], 0x41
add al, al
sub byte [ecx], al
iretd
sub eax, 0x2d020041
inc ecx
add byte [eax], dl
sub eax, 0x2d100041
inc ecx
add byte [ecx], bl
sub eax, dword [ecx]
adc byte [0x2b2b0041], ch
inc ecx
add byte [ebp + 0x2b], al
inc ecx
add byte [esi + 0x2b], dl
inc ecx
add byte [edx + 0x2b], ah
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 + 0x2b], ah
inc ecx
add byte [ebx + 0x30], ch
inc ecx
add byte [eax + esi + 0x30bb0041], cl
inc ecx
add cl, ah
xor dword [ecx], eax
lock xor dword [ecx], eax
lock xor dword [ecx], eax
div byte [ecx]
inc ecx
add byte [edx], al
xor al, byte [ecx]
add dh, byte [edx]
inc ecx
add byte [ebp + 0x30], cl
inc ecx
add byte [ebp + 0x30], dl
inc ecx
add byte [ecx + 0x30], ah
inc ecx
add byte [ecx + 0x30], ah
inc ecx
add byte [ebp + 0x30], cl
inc ecx
add byte [ebx + 0x30], ch
inc ecx
add byte [edx], al
xor al, byte [ecx]
invalid