Function at 0x40e720
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x454
push ebx
push ebp
push esi
push edi
mov ecx, 0x4515b0
call fcn.004109f0
mov ebp, dword [esp + 0x468]
mov esi, dword [esp + 0x470]
xor edi, edi
cmp ebp, dword [0x4515a0]
jle 0x40e756
mov edi, 0x80100017
jmp 0x410020
push 0x20c
lea eax, [esp + 0x20]
push 0
push eax
call fcn.00406960
mov ebx, ebp
imul ebx, ebx, 0x83c
add esp, 0xc
cmp byte [ebx + 0x4515b8], 0
jne 0x40e785
mov edi, 0xa0100009
jmp 0x410020
mov edx, dword [esp + 0x46c]
mov cl, byte [0x4515a4]
mov eax, edx
sar eax, 0x10
cmp al, 0xff
jne 0x40e79d
mov al, cl
cmp edx, 0xc0801200
jg 0x40e7c1
je 0x40ec24
lea ecx, [edx + 0x3f7ff000]
cmp ecx, 3
ja case.default.0x40f728
jmp dword [ecx*4 + 0x410058]
cmp edx, 0x3600
jg 0x40effa
je 0x40ef8f
cmp edx, 0xc0f01e00
jg 0x40eb2b
je 0x40fd11
cmp edx, 0xc080f400
jg 0x40e99c
je 0x40ecf6
cmp edx, 0xc0801e00
jg 0x40e919
je 0x40fd11
cmp edx, 0xc0801802
jg 0x40e8a8
je 0x40eaa1
cmp edx, 0xc0801800
je 0x40ed1d
cmp edx, 0xc0801801
jne case.default.0x40f728
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x68
mov byte [esp + 0x26], 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x16
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x130]
mov dword [esi], edx
mov edx, dword [esp + 0x134]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x138]
mov dword [esi + 8], ecx
mov cx, word [esp + 0x13c]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
mov word [esi + 0x14], cx
jmp 0x41001c
cmp edx, 0xc0801a00
je 0x40fc24
cmp edx, 0xc0801c00
jne case.default.0x40f728
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push eax
push ebp
mov byte [esp + 0x25], 0x1c
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x10
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov dword [esi], ecx
mov ecx, dword [esp + 0x134]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
jmp 0x41001c
cmp edx, 0xc080b200
jg 0x40e97a
je 0x40f4fe
cmp edx, 0xc0802000
je 0x40fcad
cmp edx, 0xc0802200
jne case.default.0x40f728
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 0x22
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 1
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov al, byte [esp + 0x128]
mov byte [esi], al
jmp 0x41001c
cmp edx, 0xc080ee00
je 0x40f736
cmp edx, 0xc080ee01
je 0x40f74e
mov edi, 0xa010000a
jmp 0x410020
cmp edx, 0xc0f01000
jg 0x40ea00
je case.0x40e7ba.1065349120
cmp edx, 0xc080f401
je 0x40ecbd
cmp edx, 0xc080f402
je 0x40fdda
cmp edx, 0xc080f403
jne case.default.0x40f728
mov ecx, dword [esi + 4]
mov byte [esp + 0x1c], al
mov eax, dword [esi]
lea edx, [esp + 0x1c]
mov byte [esp + 0x1d], 0xf4
mov byte [esp + 0x1e], 3
mov byte [esp + 0x1f], 0
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
push edx
jmp 0x40fc08
cmp edx, 0xc0f01800
jg 0x40ea77
je 0x40ed1d
cmp edx, 0xc0f01003
jg 0x40ea61
je case.0x40e7ba.1065349117
cmp edx, 0xc0f01001
je case.0x40e7ba.1065349119
cmp edx, 0xc0f01002
jne case.default.0x40f728
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
mov byte [esp + 0x1d], 0x10
mov byte [esp + 0x1e], 2
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
push eax
jmp 0x40fc08
cmp edx, 0xc0f01200
je 0x40ec24
mov edi, 0xa010000a
jmp 0x410020
cmp edx, 0xc0f01a00
jg 0x40eb15
je 0x40fc24
cmp edx, 0xc0f01801
je 0x40e833
cmp edx, 0xc0f01802
jne case.default.0x40f728
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 0x68
mov byte [esp + 0x26], 2
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x16
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
mov dword [esi], eax
mov eax, dword [esp + 0x134]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x138]
mov dword [esi + 8], edx
mov dx, word [esp + 0x13c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov word [esi + 0x14], dx
jmp 0x41001c
cmp edx, 0xc0f01c00
je 0x40e8c0
mov edi, 0xa010000a
jmp 0x410020
cmp edx, 0xc0ff1a00
jg 0x40ec89
je 0x40e9ce
cmp edx, 0xc0f0f400
jg 0x40eb9d
je 0x40ecf6
cmp edx, 0xc0f0b200
jg 0x40eb7b
je 0x40f4fe
cmp edx, 0xc0f02000
je 0x40fcad
cmp edx, 0xc0f02200
je 0x40e93f
mov edi, 0xa010000a
jmp 0x410020
cmp edx, 0xc0f0ee00
je 0x40f736
cmp edx, 0xc0f0ee01
je 0x40f74e
mov edi, 0xa010000a
jmp 0x410020
cmp edx, 0xc0ff1000
jg 0x40ec10
je case.0x40e7ba.1065349120
cmp edx, 0xc0f0f401
je 0x40ecbd
cmp edx, 0xc0f0f402
je 0x40fdda
cmp edx, 0xc0f0f403
je 0x40e9ce
mov edi, 0xa010000a
jmp 0x410020
mov byte [esp + 0x1d], 0x10
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [esp + 0x1c], al
mov eax, dword [esi + 8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], edx
lea edx, [esp + 0x1c]
mov byte [esp + 0x1e], 0
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
push edx
jmp 0x40fc08
cmp edx, 0xc0ff1001
je case.0x40e7ba.1065349119
cmp edx, 0xc0ff1200
jne case.default.0x40f728
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov byte [esp + 0x1c], al
mov eax, dword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc]
mov byte [esp + 0x1d], 0x12
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
jmp 0x40fc03
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov byte [esp + 0x1c], al
mov eax, dword [esi + 4]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x1c]
mov byte [esp + 0x1d], 0x10
mov byte [esp + 0x1e], 1
mov dword [esp + 0x20], 0xc
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
push edx
jmp 0x40fc08
cmp edx, 0x1801
jg 0x40ed91
je 0x40e833
cmp edx, 0xc1801003
jg 0x40ed05
je case.0x40e7ba.1065349117
cmp edx, 0xc0fff400
je 0x40ecf6
cmp edx, 0xc0fff401
jne case.default.0x40f728
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov byte [esp + 0x1c], al
mov eax, dword [esi]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x1d], 0xf4
mov byte [esp + 0x1e], 1
mov byte [esp + 0x1f], 0
mov dword [esp + 0x20], 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
push eax
jmp 0x40fc08
mov byte [esp + 0x1d], 0xf4
mov byte [esp + 0x1f], 0
jmp 0x40ebda
cmp edx, 0xc1f01003
je case.0x40e7ba.1065349117
cmp edx, 0x1800
jne case.default.0x40f728
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push eax
push ebp
mov byte [esp + 0x25], 0x68
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x16
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov dword [esi], ecx
mov ecx, dword [esp + 0x134]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x138]
mov dword [esi + 8], eax
mov ax, word [esp + 0x13c]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], edx
mov word [esi + 0x14], ax
jmp 0x41001c
cmp edx, 0x3300
jg 0x40ee51
je 0x40ee12
cmp edx, 0x1802
je 0x40eaa1
cmp edx, 0x3000
jne case.default.0x40f728
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x30
mov byte [esp + 0x27], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], edi
mov byte [esp + 0x2c], 0
mov dword [esp + 0x12c], 4
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
mov eax, esi
mov ecx, dword [eax]
mov dx, word [eax + 4]
lea eax, [esp + 0x1c]
push eax
push ebp
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0x33
mov byte [esp + 0x27], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], 6
mov dword [esp + 0x2c], ecx
mov word [esp + 0x30], dx
call fcn.0040e010
mov edi, eax
jmp 0x41003e
cmp edx, 0x3400
je 0x40eefc
cmp edx, 0x3500
jne case.default.0x40f728
movzx eax, word [esi + 2]
cmp ax, 0x100
mov cl, byte [esi]
mov dl, byte [esi + 1]
jbe 0x40ee7f
mov eax, 0x100
jmp 0x40ee82
movzx eax, ax
movzx eax, ax
mov byte [esp + 0x1e], cl
push eax
lea ecx, [esi + 4]
mov byte [esp + 0x23], dl
push ecx
lea edx, [esp + 0x2c]
push edx
mov word [esi], di
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0x35
mov dword [esp + 0x2c], eax
mov dword [esp + 0x130], eax
call fcn.00406f90
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push ebp
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov ecx, dword [esp + 0x124]
movzx eax, word [esi]
push ecx
lea edx, [esp + 0x12c]
push edx
lea ecx, [eax + esi + 2]
push ecx
call fcn.00406f90
mov dx, word [esp + 0x130]
add esp, 0xc
add word [esi], dx
jmp 0x41001c
movzx eax, word [esi + 2]
cmp ax, 0x100
mov cl, byte [esi]
mov dl, byte [esi + 1]
jbe 0x40ef12
mov eax, 0x100
jmp 0x40ef15
movzx eax, ax
movzx eax, ax
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x128], eax
lea eax, [esi + 4]
mov byte [esp + 0x22], cl
push eax
lea ecx, [esp + 0x2c]
push ecx
mov word [esi], di
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0x34
mov byte [esp + 0x2b], dl
call fcn.00406f90
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push ebp
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
movzx edx, word [esi]
push eax
lea ecx, [esp + 0x12c]
push ecx
lea eax, [edx + esi + 2]
push eax
call fcn.00406f90
mov cx, word [esp + 0x130]
add esp, 0xc
add word [esi], cx
jmp 0x41001c
movzx eax, byte [esi]
shr eax, 1
mov dword [esp + 0x124], eax
mov byte [esp + 0x1d], 0x36
add eax, eax
push eax
lea edx, [esi + 1]
mov dword [esp + 0x24], eax
push edx
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x28], 0
call fcn.00406f90
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push ebp
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
lea eax, [esp + 0x128]
mov edx, dword [esp + 0x124]
push edx
push eax
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
cmp edx, 0x802800
jg 0x40f7a4
je 0x40f783
cmp edx, 0xb200
jg 0x40f57a
je 0x40f4fe
cmp edx, 0x5700
jg 0x40f350
je 0x40f31a
cmp edx, 0x3900
jg 0x40f11d
je 0x40f100
cmp edx, 0x3700
je 0x40f0af
cmp edx, 0x3800
jne case.default.0x40f728
mov ecx, esi
movzx edx, byte [ecx]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
push eax
add ecx, 1
push ecx
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0x38
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0x130], edi
mov dword [esp + 0x2c], eax
call fcn.00406f90
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push ebp
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov ecx, esi
movzx eax, byte [ecx]
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
push eax
add ecx, 1
mov dword [esp + 0x24], eax
push ecx
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0x37
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0x130], edi
call fcn.00406f90
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push ebp
call fcn.0040e010
mov edi, eax
jmp 0x41003e
movzx eax, byte [esi]
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
mov byte [esp + 0x1d], 0x39
mov dword [esp + 0x124], eax
jmp 0x40efa2
cmp edx, 0x5000
je 0x40f219
cmp edx, 0x5100
jne case.default.0x40f728
movzx eax, word [esi]
test ax, ax
movzx ecx, word [esi + 2]
mov dl, byte [esi + 4]
mov dword [esp + 0x18], ecx
mov byte [esp + 0x13], dl
mov word [esi], di
movzx ebx, ax
mov dword [esp + 0x14], edi
jbe 0x41003e
lea ebx, [ebx]
cmp bx, 0x80
mov ebp, 0x80
ja 0x40f16f
movzx ebp, bx
mov dx, word [esp + 0x18]
movzx eax, bp
lea ecx, [eax + 3]
mov word [esp + 0x24], dx
movzx edx, word [esp + 0x14]
mov dword [esp + 0x20], ecx
mov cl, byte [esp + 0x13]
push eax
mov dword [esp + 0x128], eax
lea eax, [edx + esi + 5]
mov byte [esp + 0x2a], cl
push eax
lea ecx, [esp + 0x2f]
push ecx
sub ebx, ebp
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0x51
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
call fcn.00406f90
mov eax, dword [esp + 0x474]
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov ecx, dword [esp + 0x124]
movzx eax, word [esi]
add dword [esp + 0x14], ebp
push ecx
lea edx, [esp + 0x12c]
push edx
lea ecx, [eax + esi + 2]
push ecx
call fcn.00406f90
mov dx, word [esp + 0x130]
add word [esi], dx
add esp, 0xc
test bx, bx
ja 0x40f160
jmp 0x41001c
movzx eax, word [esi]
test ax, ax
movzx ecx, word [esi + 2]
mov dl, byte [esi + 4]
mov dword [esp + 0x18], ecx
mov byte [esp + 0x13], dl
mov word [esi], di
movzx ebp, ax
mov dword [esp + 0x14], edi
jbe 0x41003e
mov edi, edi
cmp bp, 0x80
mov ebx, 0x80
ja 0x40f24f
movzx ebx, bp
movzx eax, bx
lea ecx, [eax + 3]
mov dword [esp + 0x20], ecx
mov ecx, eax
sub ebp, ebx
and ecx, 0x80000007
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0x50
mov byte [esp + 0x1f], 0
mov byte [esp + 0x1e], 0
jns 0x40f27e
dec ecx
or ecx, 0xfffffff8
inc ecx
je 0x40f290
mov edx, eax
sub edx, ecx
add edx, 8
mov dword [esp + 0x124], edx
jmp 0x40f297
mov dword [esp + 0x124], eax
mov cx, word [esp + 0x18]
mov dl, byte [esp + 0x13]
push eax
movzx eax, word [esp + 0x18]
mov word [esp + 0x28], cx
lea ecx, [eax + esi + 5]
mov byte [esp + 0x2a], dl
push ecx
lea edx, [esp + 0x2f]
push edx
call fcn.00406f90
mov ecx, dword [esp + 0x474]
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov edx, dword [esp + 0x124]
movzx ecx, word [esi]
add dword [esp + 0x14], ebx
push edx
lea eax, [esp + 0x12c]
push eax
lea edx, [ecx + esi + 2]
push edx
call fcn.00406f90
mov ax, word [esp + 0x130]
add word [esi], ax
add esp, 0xc
test bp, bp
ja 0x40f240
jmp 0x41001c
lea eax, [esp + 0x1c]
mov ecx, esi
mov edx, dword [ecx]
push eax
push ebp
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0x57
mov byte [esp + 0x27], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], 4
mov dword [esp + 0x2c], edx
call fcn.0040e010
mov edi, eax
jmp 0x41003e
cmp edx, 0xa400
jg 0x40f3f0
je 0x40fd74
cmp edx, 0x5800
je 0x40f3c1
cmp edx, 0x8400
jne case.default.0x40f728
movzx ecx, byte [esi]
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0x84
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], ecx
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0x58
mov byte [esp + 0x27], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], edi
mov byte [esp + 0x2c], 0
call fcn.0040e010
mov edi, eax
jmp 0x41003e
cmp edx, 0xa402
je 0x40f4c0
cmp edx, 0xb000
jne case.default.0x40f728
movzx ebx, word [esi + 2]
test bx, bx
movzx eax, word [esi]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov word [esi], di
jbe 0x41003e
jmp 0x40f434
mov eax, dword [esp + 0x18]
cmp bx, 0x80
mov ebp, 0x80
ja 0x40f443
movzx ebp, bx
mov edx, dword [esp + 0x468]
mov byte [esp + 0x1e], ah
mov byte [esp + 0x1f], al
lea ecx, [esp + 0x1c]
movzx eax, bp
push ecx
push edx
sub ebx, ebp
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0xb0
mov dword [esp + 0x12c], eax
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410035
mov ax, word [esp + 0x124]
add word [esi], ax
mov ecx, dword [esp + 0x124]
movzx eax, word [esp + 0x14]
push ecx
lea edx, [esp + 0x12c]
push edx
lea ecx, [eax + esi + 2]
push ecx
call fcn.00406f90
add dword [esp + 0x20], ebp
add dword [esp + 0x24], ebp
add esp, 0xc
test bx, bx
ja 0x40f430
jmp 0x41001c
cmp cl, 0x80
jne 0x40f4d0
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], 0xe2
jmp 0x40f4df
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0xa4
mov byte [esp + 0x1e], 2
lea edx, [esp + 0x1c]
xor eax, eax
push edx
push ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x12c], eax
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov cl, byte [esi]
lea edx, [esp + 0x1c]
mov byte [esp + 0x1c], al
mov al, byte [esi + 1]
push edx
push ebp
mov byte [esp + 0x25], 0xb2
mov byte [esp + 0x26], al
mov byte [esp + 0x27], cl
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x16
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
mov dword [esi], eax
mov eax, dword [esp + 0x134]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x138]
mov dword [esi + 8], edx
mov dx, word [esp + 0x13c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov word [esi + 0x14], dx
jmp 0x41001c
cmp edx, 0xe000
jg 0x40f70f
je 0x40f62e
cmp edx, 0xd000
jne case.default.0x40f728
movzx eax, word [esi + 2]
test ax, ax
movzx ebx, word [esi]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
jbe 0x41003e
cmp ax, 0x80
mov ebp, 0x80
ja 0x40f5be
movzx ebp, ax
sub dword [esp + 0x18], ebp
movzx eax, bp
push eax
mov dword [esp + 0x24], eax
movzx eax, word [esp + 0x18]
lea ecx, [eax + esi + 4]
push ecx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0xd0
mov byte [esp + 0x2a], bh
mov byte [esp + 0x2b], bl
call fcn.00406f90
mov ecx, dword [esp + 0x474]
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x12c], 0
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], ebp
add ebx, ebp
test ax, ax
ja 0x40f5b0
jmp 0x41001c
mov ecx, 0xc
lea edi, [esp + 0x228]
mov ebx, esi
rep movsd dword es:[edi], dword [esi]
cmp byte [esp + 0x254], 0x80
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0xe0
mov byte [esp + 0x1f], 0xf
mov byte [esp + 0x1e], 0
jne 0x40f68e
cmp dword [esp + 0x248], 0
setne al
sub al, 1
and eax, 4
cmp dword [esp + 0x24c], 0
jne 0x40f67a
or al, 8
jmp 0x40f67c
and al, 0xf7
cmp dword [esp + 0x250], 0
jne 0x40f68a
or al, 0x10
jmp 0x40f6ee
and al, 0xef
jmp 0x40f6ee
lea edx, [esp + 0x258]
push edx
push ebp
mov byte [esp + 0x260], 0
mov byte [esp + 0x261], 0xaa
mov byte [esp + 0x262], 0
mov dword [esp + 0x264], 0
mov dword [esp + 0x368], 2
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov cl, byte [esp + 0x364]
mov al, cl
add al, al
not al
and al, 4
test cl, 1
jne 0x40f6ec
or al, 8
jmp 0x40f6ee
and al, 0xf7
mov byte [esp + 0x1e], al
mov ecx, 7
mov esi, ebx
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], 0x1f
jmp 0x40fba5
cmp edx, 0xee00
jg 0x40f742
je 0x40f736
lea eax, [edx - 0xe001]
cmp eax, 6
ja case.default.0x40f728
jmp dword [eax*4 + 0x410068]
xor edi, edi
jmp 0x41003e
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e], 0
push ecx
jmp 0x40f758
cmp edx, 0xee01
jne case.default.0x40f728
lea edx, [esp + 0x1c]
mov byte [esp + 0x1e], 1
push edx
xor ebx, ebx
push ebp
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x25], 0xee
mov byte [esp + 0x24], al
call fcn.0040e010
mov edi, eax
cmp edi, ebx
jne 0x410020
jmp 0x41003e
lea eax, [esp + 0x1c]
push eax
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x28
mov byte [esp + 0x26], 0
call fcn.0040e010
mov edi, eax
jmp 0x41003e
cmp edx, 0xff1a00
jg 0x40fc69
je 0x40fc24
cmp edx, 0x80d000
jg 0x40fa1d
je 0x40f9ad
cmp edx, 0x804400
jg 0x40f92b
je 0x40f8d7
cmp edx, 0x802801
je 0x40f8b6
cmp edx, 0x804000
je 0x40f860
cmp edx, 0x804200
jne case.default.0x40f728
mov edi, 0x38
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
mov byte [esp + 0x28], 0x80
mov byte [esp + 0x29], 0x42
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x2c], edi
call fcn.00406f90
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push ebp
mov dword [esp + 0x12c], edi
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x40
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0x18
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x28
mov byte [esp + 0x26], 1
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov edi, 0x38
push edi
lea eax, [esp + 0x28]
push esi
push eax
mov byte [esp + 0x28], 0x80
mov byte [esp + 0x29], 0x44
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x2c], edi
call fcn.00406f90
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov dword [esp + 0x12c], edi
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
lea eax, [esp + 0x128]
jmp 0x40efe3
cmp edx, 0x804600
je 0x40f97a
cmp edx, 0x804800
jne case.default.0x40f728
mov ecx, esi
mov dl, byte [ecx]
lea eax, [esp + 0x1c]
push eax
and dl, 0x4f
push ebp
mov byte [esp + 0x24], 0x80
mov byte [esp + 0x25], 0x48
mov byte [esp + 0x26], dl
mov byte [esp + 0x27], 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 1
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov edi, 0x38
push edi
mov ecx, esi
push ecx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x28], 0x80
mov byte [esp + 0x29], 0x46
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x2c], edi
call fcn.00406f90
add esp, 0xc
jmp 0x40fba5
mov cl, byte [esi + 1]
mov dl, byte [esi]
push 0x40
lea eax, [esi + 2]
mov byte [esp + 0x22], cl
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0x80
mov byte [esp + 0x29], 0xd0
mov byte [esp + 0x2b], dl
mov dword [esp + 0x2c], 0x40
call fcn.00406f90
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push ebp
mov dword [esp + 0x12c], 4
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
cmp edx, 0x80e001
jg 0x40fbc2
je 0x40fb83
cmp edx, 0x80d401
je 0x40fb40
cmp edx, 0x80e000
jne case.default.0x40f728
and byte [esi + 3], 0xdf
mov al, byte [esi + 3]
test al, 0x10
mov byte [esp + 0x1c], 0x80
mov byte [esp + 0x1d], 0xe0
mov byte [esp + 0x1e], 0
je 0x40facf
xor eax, eax
mov cl, byte [eax + esi + 6]
test cl, cl
je 0x40facf
cmp cl, 0x61
jb 0x40fa7c
cmp cl, 0x7a
ja 0x40fa7c
sub cl, 0x20
mov byte [eax + esi + 6], cl
mov cl, byte [eax + esi + 7]
test cl, cl
je 0x40facf
cmp cl, 0x61
jb 0x40fa95
cmp cl, 0x7a
ja 0x40fa95
sub cl, 0x20
mov byte [eax + esi + 7], cl
mov cl, byte [eax + esi + 8]
test cl, cl
je 0x40facf
cmp cl, 0x61
jb 0x40faae
cmp cl, 0x7a
ja 0x40faae
sub cl, 0x20
mov byte [eax + esi + 8], cl
mov cl, byte [eax + esi + 9]
test cl, cl
je 0x40facf
cmp cl, 0x61
jb 0x40fac7
cmp cl, 0x7a
ja 0x40fac7
sub cl, 0x20
mov byte [eax + esi + 9], cl
add eax, 4
cmp eax, 0x10
jl 0x40fa63
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], ecx
mov cx, word [esi + 0x14]
push edx
push ebp
mov dword [esp + 0x3c], eax
mov word [esp + 0x40], cx
mov dword [esp + 0x28], 0x16
mov dword [esp + 0x12c], 6
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x41003e
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x12c]
push ecx
push esi
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
mov eax, esi
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov byte [esp + 0x1f], cl
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1c], 0x80
mov byte [esp + 0x1d], 0xd4
mov dword [esp + 0x20], 0x46
lea esi, [eax + 2]
mov ecx, 0x11
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x1c]
push edx
push ebp
movsw word es:[edi], word [esi]
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov ecx, 7
lea edi, [esp + 0x24]
mov byte [esp + 0x1c], 0x80
mov byte [esp + 0x1d], 0xe0
mov byte [esp + 0x1e], 1
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], 0x1c
lea eax, [esp + 0x1c]
push eax
push ebp
mov dword [esp + 0x12c], 0
call fcn.0040e010
mov edi, eax
jmp 0x41003e
mov ecx, edx
sub ecx, 0xff1002
je case.0x40e7ba.1065349118
sub ecx, 1
jne case.default.0x40f728
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [esp + 0x1c], al
mov eax, dword [esi + 8]
mov byte [esp + 0x1d], 0x10
mov byte [esp + 0x1e], 3
mov dword [esp + 0x20], 0xc
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov dword [esp + 0x12c], edi
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
jmp 0x41003e
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 0x1a
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 8
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x12c]
mov dword [esi], edx
mov dword [esi + 4], eax
jmp 0x41001c
cmp edx, 0x100e001
jg 0x40feed
je case.0x40f728.57345
cmp edx, 0xff2200
jg 0x40fd60
je 0x40e93f
cmp edx, 0xff1c00
je 0x40e8c0
cmp edx, 0xff1e00
je 0x40fd11
cmp edx, 0xff2000
jne case.default.0x40f728
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x28], edx
lea edx, [esp + 0x1c]
mov byte [esp + 0x1c], al
mov eax, dword [esi + 8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0xc]
push edx
push ebp
mov byte [esp + 0x25], 0x20
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x12c], 8
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x41001c
lea edx, [esp + 0x1c]
push edx
push ebp
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 0x1e
mov dword [esp + 0x28], edi
mov dword [esp + 0x12c], 0xc
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410020
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
jmp 0x41001c
cmp edx, 0xfff402
je 0x40fdda
cmp edx, 0x100a400
jne case.default.0x40f728
movzx eax, word [esi]
test ax, ax
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0xa4
je 0x40fd9d
mov byte [esp + 0x1e], 0
mov dword [esp + 0x20], 2
mov word [esp + 0x24], ax
jmp 0x40fc03
lea eax, [esi + 6]
lea edx, [esp + 0x24]
mov byte [esp + 0x1e], 1
sub edx, eax
jmp 0x40fdb0
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x40fdb0
lea eax, [esp + 0x24]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40fdc3
sub eax, edx
add eax, 1
mov dword [esp + 0x20], eax
jmp 0x40fc03
mov byte [esp + 0x1c], al
mov al, byte [esi]
test al, al
mov byte [esp + 0x1d], 0xf4
mov byte [esp + 0x1e], 2
jne 0x40fdf8
mov edi, 0xa010000b
jmp 0x410020
mov edx, dword [esi + 1]
mov byte [esp + 0x1f], al
mov eax, dword [esi + 5]
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x40fc03
cmp edx, 0xe001
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0xe0
mov byte [esp + 0x1e], 1
jne 0x40fe37
mov byte [esi + 3], 0x20
jmp 0x40feb0
and byte [esi + 3], 0xdf
mov al, byte [esi + 3]
test al, 0x10
je 0x40feb0
xor eax, eax
mov cl, byte [eax + esi + 6]
test cl, cl
je 0x40feb0
cmp cl, 0x61
jb 0x40fe5d
cmp cl, 0x7a
ja 0x40fe5d
sub cl, 0x20
mov byte [eax + esi + 6], cl
mov cl, byte [eax + esi + 7]
test cl, cl
je 0x40feb0
cmp cl, 0x61
jb 0x40fe76
cmp cl, 0x7a
ja 0x40fe76
sub cl, 0x20
mov byte [eax + esi + 7], cl
mov cl, byte [eax + esi + 8]
test cl, cl
je 0x40feb0
cmp cl, 0x61
jb 0x40fe8f
cmp cl, 0x7a
ja 0x40fe8f
sub cl, 0x20
mov byte [eax + esi + 8], cl
mov cl, byte [eax + esi + 9]
test cl, cl
je 0x40feb0
cmp cl, 0x61
jb 0x40fea8
cmp cl, 0x7a
ja 0x40fea8
sub cl, 0x20
mov byte [eax + esi + 9], cl
add eax, 4
cmp eax, 0x10
jl 0x40fe44
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], ecx
mov cx, word [esi + 0x14]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], eax
mov word [esp + 0x38], cx
mov dword [esp + 0x20], 0x16
push edx
jmp 0x40fc08
cmp edx, 0x3000000
jg 0x40ffe9
je 0x40ff5d
cmp edx, 0x1ff1003
je case.0x40e7ba.1065349117
cmp edx, 0x2000000
jne case.default.0x40f728
lea eax, [ebx + 0x451dc4]
mov edx, esi
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x40ff20
mov edx, dword [ebx + 0x451dd5]
lea eax, [ebx + 0x451dd5]
mov dword [esi + 0x10], edx
mov edx, dword [eax + 4]
lea ecx, [esi + 0x10]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov dx, word [eax + 0xc]
mov word [ecx + 0xc], dx
mov al, byte [eax + 0xe]
mov byte [ecx + 0xe], al
jmp 0x41003e
cmp cl, 0x80
jne 0x40ff7a
mov dl, byte [esi + 1]
mov al, byte [esi]
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], 0x26
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1f], al
jmp 0x40ff87
mov cl, byte [esi + 1]
mov dl, byte [esi]
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], dl
movzx eax, word [esi + 2]
lea ebx, [esi + 2]
push eax
mov dword [esp + 0x24], eax
lea eax, [esi + 4]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov word [esi], di
call fcn.00406f90
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push ebp
mov dword [esp + 0x12c], 0xfe
call fcn.0040e010
mov edi, eax
test edi, edi
jne 0x410035
mov ecx, dword [esp + 0x124]
mov ax, word [esp + 0x124]
push ecx
lea edx, [esp + 0x12c]
push edx
push ebx
mov word [esi], ax
call fcn.00406f90
add esp, 0xc
jmp 0x41001c
cmp edx, 0x4000000
je 0x410010
cmp edx, 0x5000000
je 0x410000
mov edi, 0xa010000a
jmp 0x410020
mov eax, esi
push eax
push ebp
call fcn.0040e3b0
add esp, 8
mov edi, eax
jmp 0x41003e
push esi
push ebp
call fcn.0040e190
add esp, 8
mov edi, eax
test edi, edi
je 0x41003e
mov eax, dword [esp + 0x46c]
cmp eax, 0xb000
je 0x410035
cmp eax, 0x3000000
jne 0x41003e
test esi, esi
je 0x41003e
mov word [esi], 0
mov ecx, 0x4515b0
call fcn.00410a10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x454
ret 0xc