Function at 0x435f9b
Capabilities:
Check for software breakpoints
Inspect section memory permissions
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x14c
push ebx
push ebp
mov ebp, dword [esp + 0x15c]
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x11c]
push esi
xor esi, esi
push edi
test eax, 0x8000000
mov eax, dword [esp + 0x160]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], esi
je 0x43563e
cmp dword [eax + 0x7c], esi
jne 0x43563e
cmp dword [eax + 0x2c], esi
jne 0x43563e
cmp dword [eax + 0x54], esi
jne 0x43563e
mov dword [eax + 0x54], 3
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
lea ecx, [esp + 0x30]
mov dword [esp + 0x58], eax
lea edx, [esp + 0x5c]
push ecx
lea eax, [esp + 0x4c]
push edx
push eax
push ebp
call fcn.00437720
add esp, 0x10
cmp eax, esi
jne 0x4374aa
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov word [ebp + 0x10a], cx
push esi
movsx ecx, cx
inc ecx
push ecx
call fcn.0042ff10
add esp, 0xc
cmp eax, esi
jne 0x4374aa
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebx]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
xor edx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebp + 0x8c], edx
jne 0x4356e5
mov dword [ebp + 0x8c], 1
mov ebx, dword [esp + 0x160]
mov edi, 2
cmp dword [ebx + 0x44], edx
je 0x43572f
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x118]
or al, 0x80
or ecx, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x118], ecx
mov ecx, dword [ebp + 0x11c]
or eax, 0x80000000
or ecx, 0x400000
mov dword [esp + 0x18], eax
mov dword [ebp + 0x11c], ecx
jmp 0x43574a
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
or esi, 0x80
or eax, 0xc0000000
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], eax
mov ecx, dword [ebx + 0x68]
cmp ecx, 3
ja case.default.0x43575b
mov esi, 0x40
jmp dword [ecx*4 + 0x4374f4]
test byte [ebp + 0x118], 2
je 0x43577b
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [esp + 0x10]
or eax, 0xc0000000
or cl, 0x80
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x11c]
test ecx, 0x8000000
je case.0x43575b.0
jmp 0x435804
mov ecx, dword [ebp + 0x118]
and eax, 0x3fffffff
or ecx, edi
mov dword [ebp + 0x118], ecx
mov ecx, dword [esp + 0x10]
or cl, 0x80
or eax, 0x80000000
mov dword [esp + 0x10], ecx
jmp 0x435800
test byte [ebp + 0x118], 2
je 0x4357dd
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [ebp + 0x11c]
and eax, 0x3fffffff
or ecx, esi
mov dword [ebp + 0x11c], ecx
mov ecx, dword [esp + 0x10]
or cl, 0x80
or eax, 0x40000000
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov ecx, dword [ebx + 0x88]
cmp ecx, 3
ja case.default.0x435817
jmp dword [ecx*4 + 0x437504]
test byte [ebp + 0x118], 2
je 0x435837
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov esi, dword [esp + 0x10]
or eax, 0xc0000000
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x11c]
or esi, 0x80
test eax, 0x8000000
mov dword [esp + 0x10], esi
je case.0x435817.0
jmp 0x4358c8
mov ecx, dword [ebp + 0x118]
and eax, 0x3fffffff
or ecx, edi
mov edi, dword [esp + 0x10]
or edi, 0x80
mov dword [ebp + 0x118], ecx
mov dword [esp + 0x10], edi
or eax, 0x80000000
jmp 0x4358c4
test byte [ebp + 0x118], 2
je 0x43589e
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [ebp + 0x11c]
mov edi, dword [esp + 0x10]
or ecx, esi
or edi, 0x80
and eax, 0x3fffffff
mov dword [ebp + 0x11c], ecx
mov dword [esp + 0x10], edi
or eax, 0x40000000
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov eax, dword [ebx]
cmp eax, 4
ja case.default.0x4358d7
jmp dword [eax*4 + 0x437514]
mov eax, dword [ebp + 0x118]
or ah, 8
jmp 0x43591c
mov eax, dword [ebp + 0x118]
or ah, 0x10
jmp 0x43591c
mov eax, dword [ebp + 0x118]
or ah, 0x20
jmp 0x43591c
mov eax, dword [ebp + 0x118]
test al, 2
je 0x435919
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
or ah, 0xc
mov dword [ebp + 0x118], eax
mov eax, dword [ebx + 0x54]
cmp eax, 5
ja case.default.0x435933
mov ebx, 0x10
jmp dword [eax*4 + 0x437528]
test dword [ebp + 0x11c], 0x8000000
je case.0x435933.4
lea eax, [esp + 0x5c]
push 0x492128
push eax
call fcn.0044c200
add esp, 8
test eax, eax
jne case.0x435933.4
mov eax, dword [ebp + 0x118]
or al, 0x20
mov dword [ebp + 0x118], eax
mov eax, dword [ebp + 0x118]
test al, 2
je 0x435980
test dword [ebp + 0x11c], 0x8000000
je 0x435990
test dword [ebp + 0x11c], 0x400000
je 0x435a51
or al, 8
mov dword [ebp + 0x118], eax
mov eax, dword [esp + 0x14]
or al, 3
jmp 0x435a57
mov ecx, dword [ebp + 0x118]
mov eax, dword [esp + 0x14]
or ecx, 8
or al, 3
mov dword [ebp + 0x118], ecx
jmp 0x435a57
mov eax, dword [ebp + 0x118]
test al, 2
jne 0x437415
test ah, 4
je 0x4359e0
test dword [ebp + 0x11c], 0x8000000
je 0x437415
mov eax, dword [esp + 0x14]
or al, 1
jmp 0x435a57
mov eax, dword [ebp + 0x118]
test al, 2
jne 0x437415
test ah, 4
je 0x435a0b
test dword [ebp + 0x11c], 0x8000000
je 0x437415
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
or esi, 2
or edx, 0x4000002
or eax, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
mov dword [ebp + 0x118], eax
jmp 0x435a5b
mov eax, dword [ebp + 0x118]
test al, 2
jne 0x437415
test ah, 4
je 0x435a51
test dword [ebp + 0x11c], 0x8000000
je 0x437415
mov eax, dword [esp + 0x14]
or al, 4
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x160]
mov eax, dword [esi + 0x28]
cmp eax, 6
ja case.default.0x435c38
jmp dword [eax*4 + 0x437540]
test byte [ebp + 0x118], bl
je case.0x435a6e.0
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test byte [ebp + 0x118], bl
je case.0x435a6e.2
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x118]
test al, 2
je 0x435abf
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
or al, 0x20
mov dword [ebp + 0x118], eax
mov ecx, dword [esi + 0x28]
cmp ecx, 5
jne 0x435ad3
or al, 0x40
jmp 0x435ada
cmp ecx, 6
jne case.0x435a6e.0
or al, 0x80
mov dword [ebp + 0x118], eax
mov eax, dword [esi + 0x34]
cmp eax, 4
ja case.default.0x435af6
mov edx, 0x200
mov ebx, 0x20000000
jmp dword [eax*4 + 0x43755c]
mov eax, dword [ebp + 0x118]
test ah, 0x30
jne 0x435b13
or ah, 1
mov dword [ebp + 0x118], eax
jmp 0x435b67
mov ecx, dword [ebp + 0x120]
test ch, 0x20
jne 0x435b4c
or eax, edx
mov dword [ebp + 0x118], eax
jmp 0x435b67
mov eax, dword [ebp + 0x118]
or ah, 1
mov dword [ebp + 0x118], eax
jmp 0x435b67
mov eax, dword [ebp + 0x120]
test ah, 0x20
jne 0x435b4c
or dword [ebp + 0x118], edx
jmp 0x435b67
mov eax, dword [ebp + 0x11c]
or eax, ebx
jmp 0x435b61
mov eax, dword [ebp + 0x11c]
or eax, 0x40000000
mov dword [ebp + 0x11c], eax
mov cl, byte [esi + 0x4c]
mov byte [ebp + 0x10c], cl
mov eax, dword [esi + 0x4c]
cmp eax, 7
ja case.default.0x435c38
jmp dword [eax*4 + 0x437570]
mov eax, dword [ebp + 0x118]
test ah, 0x31
je case.0x435b7c.0
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov byte [ebp + 0x10c], 4
mov al, byte [esi + 0x18]
mov byte [ebp + 0x10e], al
mov eax, dword [esi + 0x18]
test eax, eax
je 0x435be0
jle 0x435bbc
cmp eax, 3
jle 0x435c2c
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2c2
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [ebp + 0x11c]
test ecx, 0x8000000
je 0x435c07
mov eax, dword [ebp + 0x118]
test ah, 0x10
je 0x435c07
test ah, 1
je 0x435c07
mov byte [ebp + 0x10e], 2
jmp 0x435c2c
mov al, byte [ebp + 0x10c]
cmp al, 1
je 0x435c25
cmp al, 4
je 0x435c25
test dword [ebp + 0x118], edx
jne 0x435c25
test ecx, 0x60000000
je 0x435c2c
mov byte [ebp + 0x10e], 3
mov eax, dword [esi + 0x40]
cmp eax, 3
ja case.default.0x435c38
jmp dword [eax*4 + 0x437590]
mov ecx, dword [ebp + 0x118]
test ch, 0x20
jne 0x435cc8
mov byte [ebp + 0x10d], 1
jmp 0x435ccf
mov ecx, dword [ebp + 0x118]
test ch, 0x10
je 0x435c77
cmp byte [ebp + 0x10c], 1
je 0x435c77
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test ch, 0x20
je 0x435c8c
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov byte [ebp + 0x10d], 1
jmp 0x435ccf
mov ecx, dword [ebp + 0x118]
test ch, 0x20
je 0x435cb0
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov byte [ebp + 0x10d], 2
jmp 0x435ccf
mov ecx, dword [ebp + 0x118]
test ch, 0x14
jne 0x437415
mov byte [ebp + 0x10d], 3
mov al, byte [ebp + 0x10d]
cmp al, 2
je 0x435cde
test ch, 0x10
je 0x435ce6
or dword [esp + 0x10], 0x10000000
mov edi, dword [esi + 0x4c]
test edi, edi
jne 0x435d38
cmp al, 2
je 0x435d31
cmp al, 3
je 0x435d31
test ch, 0x30
jne 0x435d31
test dword [ebp + 0x11c], 0x60000000
jne 0x435d28
test edx, ecx
je 0x435d13
mov byte [ebp + 0x10c], 4
jmp 0x435d38
cmp byte [ebp + 0x10e], 3
setne dl
add edx, 5
mov byte [ebp + 0x10c], dl
jmp 0x435d38
mov byte [ebp + 0x10c], 5
jmp 0x435d38
mov byte [ebp + 0x10c], 1
cmp al, 2
je 0x435d45
cmp al, 3
je 0x435d45
test ch, 0x30
je 0x435d5e
cmp byte [ebp + 0x10c], 1
je 0x435d5e
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
mov edi, eax
and edi, ebx
je 0x435d88
test ch, 0xc
je 0x435d88
cmp byte [ebp + 0x10c], 5
je 0x435d88
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov dl, byte [ebp + 0x10c]
cmp dl, 4
jne 0x435dac
cmp byte [ebp + 0x10e], 3
je 0x435dac
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ebx, dword [esp + 0x1c]
or ebx, 1
mov dword [esp + 0x1c], ebx
mov ebx, dword [esi + 0x50]
test ebx, ebx
jne 0x435dc5
test eax, 0x8000000
je 0x435dd9
or ecx, 4
mov dword [ebp + 0x118], ecx
mov ecx, dword [esp + 0x1c]
or ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0xc]
sub ecx, 0
je 0x435e16
dec ecx
je 0x435e37
dec ecx
je 0x435e05
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20d
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [ebp + 0x118]
or ch, 0x40
mov dword [ebp + 0x118], ecx
jmp 0x435e37
mov ecx, dword [ebp + 0x118]
mov esi, ecx
not ecx
shr ecx, 8
and esi, 0xffffbfff
and ecx, 0x4000
or esi, ecx
mov dword [ebp + 0x118], esi
mov ebx, dword [esp + 0x160]
mov esi, dword [ebx + 0x48]
test esi, esi
jne 0x435f20
cmp dl, 1
je 0x435f02
mov ecx, dword [ebp + 0x118]
test ch, 0x10
jne 0x435f02
test edi, edi
jne 0x435ee0
test eax, 0x40000000
jne 0x435ee0
test eax, 0x8000000
je 0x435e97
test ch, 1
je 0x435e97
mov eax, 0x400
or ch, 0x80
mov dword [ebp + 0xac], eax
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0x118], ecx
jmp 0x435fb0
test ch, 2
je 0x435ebe
or ch, 0x80
mov dword [ebp + 0xac], 0x800
mov dword [ebp + 0xb0], 0x1fe
mov dword [ebp + 0x118], ecx
jmp 0x435fb0
or ch, 0x80
mov dword [ebp + 0xac], 0x85
mov dword [ebp + 0xb0], 0x84
mov dword [ebp + 0x118], ecx
jmp 0x435fb0
or ch, 0x80
mov dword [ebp + 0xac], 0x400
mov dword [ebp + 0xb0], 0x10000
mov dword [ebp + 0x118], ecx
jmp 0x435fb0
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x21c
add eax, 0xc0000025
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test eax, 0x8000000
je 0x435f41
cmp esi, 1
jl 0x435f31
cmp esi, 0xfffffffa
jbe 0x435f41
mov eax, 0xc0000245
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test esi, esi
jle 0x4373d1
mov eax, dword [ebp + 0x118]
mov dword [ebp + 0xb0], esi
test ah, 2
je 0x435f6b
test eax, 0x1000000
jne 0x435f6b
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x435f6b
shl esi, 2
movsx eax, dl
dec eax
cmp eax, 6
ja case.default.0x435f74
jmp dword [eax*4 + 0x4375a0]
add esi, 4
jmp case.0x435f74.1
add esi, 8
jmp case.0x435f74.1
cmp byte [ebp + 0x10e], 3
jne case.0x435f74.1
inc esi
jmp case.0x435f74.1
push 0x567
push 0x492130
push 2
push 0xc0000008
call fcn.0042ea90
add esp, 0x10
mov dword [ebp + 0xac], esi
mov eax, dword [ebx + 4]
test eax, eax
je 0x435fc3
mov dword [ebp + 0x40], eax
mov al, byte [ebx + 8]
mov byte [ebp + 0x10f], al
mov ecx, dword [ebx + 0x3c]
mov dword [ebp + 0x90], ecx
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x436002
mov ecx, dword [ebp + 0x118]
test ch, 1
jne 0x436002
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2c0
add eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
cmp eax, 3
ja case.default.0x43600b
jmp dword [eax*4 + 0x4375bc]
mov byte [ebp + 0x111], 0
jmp 0x43602b
mov byte [ebp + 0x111], 0x27
jmp 0x43602b
mov byte [ebp + 0x111], 0x22
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x436061
mov ecx, dword [ebp + 0x118]
test ch, 1
jne 0x436061
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2c2
add eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
sub eax, 0
je 0x4360a0
dec eax
je 0x436090
dec eax
je 0x4360a0
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2c1
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and al, 0x7f
mov dword [ebp + 0x11c], eax
jmp 0x4360ba
mov eax, dword [ebp + 0x11c]
mov edx, eax
shr eax, 1
and dl, 0x7f
and eax, 0x80
or edx, eax
mov dword [ebp + 0x11c], edx
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x436107
jle 0x4360e3
cmp eax, 3
jg 0x4360e3
mov eax, dword [ebp + 0x118]
test ah, 0x30
je 0x436107
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2bc
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebx + 0x8c]
cmp eax, 5
ja case.default.0x43611b
mov ecx, 0xfffffffb
jmp dword [eax*4 + 0x4375cc]
mov eax, dword [ebp + 0x120]
or al, 1
jmp 0x436185
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x120]
and ecx, 0xfffffffe
or al, 2
mov dword [esp + 0x1c], ecx
jmp 0x436185
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x120]
and esi, 0xfffffffc
and edx, ecx
mov dword [esp + 0x1c], esi
mov dword [ebp + 0x118], edx
or al, 4
jmp 0x436185
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x120]
and esi, 0xfffffffd
and edx, ecx
mov dword [esp + 0x1c], esi
mov dword [ebp + 0x118], edx
or al, 8
mov dword [ebp + 0x120], eax
mov eax, dword [ebp + 0x118]
test ah, 1
je 0x4361d6
test ah, 0xc
jne 0x4361c7
test ah, 0x10
je 0x4361af
mov dword [ebp + 0xf4], 2
jmp 0x43626d
test ah, 0x20
je 0x43626d
mov dword [ebp + 0xf4], 8
jmp 0x43626d
mov dword [ebp + 0xf4], 3
jmp 0x43626d
test ah, 2
jne 0x436224
mov ecx, dword [ebp + 0x11c]
test ecx, 0x20000000
jne 0x436224
test ecx, 0x40000000
je 0x43626d
test ah, 0xc
jne 0x436218
test ah, 0x10
je 0x436207
mov dword [ebp + 0xf4], 4
jmp 0x43626d
test ah, 0x20
je 0x43626d
mov dword [ebp + 0xf4], 0xa
jmp 0x43626d
mov dword [ebp + 0xf4], 5
jmp 0x43626d
test ah, 0xc
jne 0x43624b
test ah, 0x10
je 0x43623a
mov dword [ebp + 0xf4], 6
jmp 0x43626d
test ah, 0x20
je 0x43626d
mov dword [ebp + 0xf4], 9
jmp 0x43626d
test dword [ebp + 0x11c], 0x20000000
je 0x436263
mov dword [ebp + 0xf4], 7
jmp 0x43626d
mov dword [ebp + 0xf4], 0xb
mov eax, dword [ebx + 0x80]
test eax, eax
mov eax, dword [0x499e2c]
je 0x436290
test eax, eax
jne 0x436290
mov eax, 0xc0000232
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x4362bd
test eax, eax
jne 0x4362ae
mov eax, 0xc0000234
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [esp + 0x160]
mov ebx, dword [ecx + 0x94]
jmp 0x4362c1
mov ebx, dword [esp + 0x40]
test eax, eax
jne 0x43630f
lea edx, [esp + 0x5c]
push 0x492154
push edx
call fcn.0044c200
add esp, 8
test eax, eax
jne 0x43630f
mov eax, dword [0x49215c]
lea edi, [esp + 0x5c]
mov dword [esp + 0x5c], eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp + 0x4c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [ebp + 0x10a], 3
lea eax, [esp + 0x5c]
push eax
push ebp
call fcn.0042c0b0
mov ecx, eax
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x44], ecx
je 0x43638f
mov eax, dword [ebp + 0xf4]
sub eax, 3
je 0x436363
sub eax, 2
je 0x43636d
mov eax, dword [ebp + 0x11c]
test eax, 0x8000000
je 0x43638f
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x1f6
add eax, 0xc0000033
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov dword [ebp + 0xf4], 1
test dword [ebp + 0x11c], 0x8000000
je 0x43638f
mov eax, dword [ebp + 0x118]
mov dword [esp + 0x14], 3
or al, 8
mov dword [ebp + 0x118], eax
mov eax, dword [0x499e2c]
test eax, eax
jne 0x4363aa
cmp ecx, 0xfffffffa
jne 0x4363a6
mov ecx, 1
mov dword [esp + 0x44], ecx
test eax, eax
je 0x4363f7
cmp ecx, 0xfffffffa
je 0x4363c8
cmp ecx, 1
je 0x4363c8
test ebx, ebx
je 0x4363c8
mov eax, 0xc0000234
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test eax, eax
je 0x4363f7
cmp ecx, 0xfffffffa
je 0x4363f7
cmp ecx, 1
je 0x4363f7
mov esi, dword [esp + 0x160]
mov eax, dword [esi + 0x80]
test eax, eax
je 0x4363fe
mov eax, 0xc0000232
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov esi, dword [esp + 0x160]
cmp ecx, 0xfffffffc
jne 0x436481
cmp word [ebp + 0x10a], 4
jge 0x436438
mov ecx, dword [ebp + 0x4c]
lea esi, [ebp + 0x4c]
push ecx
call fcn.0042ff70
add esp, 4
test eax, eax
jne 0x4374aa
push esi
push eax
push 5
call fcn.0042ff10
add esp, 0xc
test eax, eax
jne 0x4374aa
mov al, byte [0x492164]
mov edx, dword [0x492160]
mov byte [esp + 0x60], al
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x5c], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp + 0x4c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x160]
mov ecx, dword [esp + 0x44]
mov word [ebp + 0x10a], 4
test ecx, ecx
jl 0x4364c5
cmp dword [ebp + 0xf4], 1
jne 0x436600
cmp ecx, 1
je 0x4364a4
cmp ecx, 2
je 0x4364a4
test ecx, ecx
jne 0x436600
mov eax, dword [0x499e2c]
mov ecx, dword [ebp + 0x120]
and eax, 1
and ecx, 0xffffffbf
shl eax, 6
or eax, ecx
mov dword [ebp + 0x120], eax
jmp 0x436600
mov eax, dword [0x499e2c]
test eax, eax
je 0x436600
cmp ecx, 0xfffffffa
jne 0x436600
mov edx, dword [ebp + 0x120]
mov dword [esp + 0x30], 0
or edx, 0x40
mov dword [ebp + 0x120], edx
mov ecx, dword [esi + 0x80]
test ecx, ecx
mov eax, edx
je 0x43650c
mov ecx, dword [esi + 0x84]
test ecx, ecx
jne 0x43650c
and al, 0x7f
jmp 0x43650e
or al, 0x80
test ebx, ebx
mov dword [ebp + 0x120], eax
jne 0x43651d
mov ebx, 0x100
lea edx, [esp + 0x28]
lea eax, [ebx + 1]
push edx
push 0
push eax
call fcn.0042ff10
add esp, 0xc
test eax, eax
jne 0x4374aa
mov eax, dword [esi + 0x94]
test eax, eax
jne 0x43655d
mov ecx, dword [ebp + 0xb4]
mov edx, dword [esp + 0x28]
push ecx
push str.Unit__i
push edx
call fcn.0044c100
add esp, 0xc
jmp 0x43657a
mov eax, dword [esi + 0x90]
mov ecx, dword [esp + 0x28]
push ebx
push eax
push ecx
call fcn.0044c290
mov edx, dword [esp + 0x34]
add esp, 0xc
mov byte [edx + ebx], 0
mov eax, dword [esp + 0x28]
push eax
call fcn.0045f9e0
add esp, 4
cmp eax, 0xffffffff
mov dword [ebp + 0xa0], eax
jne 0x4365b6
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x24f
add eax, 0xc0000009
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
test byte [ebp + 0x120], 0x80
je 0x4365eb
push eax
call fcn.0045fa50
mov ecx, dword [ebp + 0xa0]
add esp, 4
push ecx
call fcn.0045fa00
add esp, 4
test eax, eax
jne 0x4365eb
mov eax, 0xc000028e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov edx, dword [esp + 0x28]
push edx
call fcn.0042ff70
add esp, 4
test eax, eax
jne 0x4374aa
mov eax, dword [esp + 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
test eax, eax
je 0x4366b1
mov eax, dword [esp + 0x160]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x43668c
mov ecx, dword [ebp + 0xb4]
lea edi, [esp + 0x5c]
mov dword [esp + 0x2c], ecx
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [ebp + 0x118]
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x160]
or ebx, 0x20000
not ecx
dec ecx
mov dword [ebp + 0x118], ebx
mov eax, dword [edx + 0x64]
push ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x44]
push ecx
push edx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x54]
lea edx, [esp + 0x30]
push ecx
push edx
lea ecx, [esp + 0x34]
lea edx, [esp + 0x78]
push ecx
push edx
mov dword [esp + 0x64], 0
call eax
add esp, 0x24
jmp 0x4366ab
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push 0
push eax
mov eax, dword [esp + 0x20]
push ecx
push 0
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call esi
mov dword [ebp + 0xa0], eax
mov eax, dword [ebp + 0xa0]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
jne 0x4367c3
mov eax, dword [ebp + 0x118]
test eax, 0x400000
jne 0x4367c3
test al, 2
jne 0x4367c3
test byte [ebp + 0x11c], 0x40
jne 0x4367c3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4367c3
call edi
cmp eax, 5
je 0x436719
cmp eax, 0x13
je 0x436719
mov eax, dword [ebp + 0x11c]
mov ebx, 0x8000000
test ebx, eax
je 0x4367c8
jmp 0x43671e
mov ebx, 0x8000000
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 0
and eax, 0x3fffffff
push edx
mov edx, dword [esp + 0x24]
push ecx
or eax, 0x80000000
push 0
push edx
mov dword [esp + 0x2c], eax
push eax
lea eax, [esp + 0x74]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp + 0xa0], eax
jne 0x4367a1
test dword [ebp + 0x11c], ebx
je 0x4367a1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push 0
and eax, 0x3fffffff
push ecx
mov ecx, dword [esp + 0x24]
push edx
or eax, 0x40000000
push 0
push ecx
lea edx, [esp + 0x70]
push eax
push edx
mov dword [esp + 0x34], eax
call esi
mov dword [ebp + 0xa0], eax
mov eax, dword [ebp + 0x11c]
or al, 0x40
mov dword [ebp + 0x11c], eax
jmp 0x4367c8
mov ecx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x11c]
or ecx, 2
or eax, 0x400000
mov dword [ebp + 0x118], ecx
mov dword [ebp + 0x11c], eax
jmp 0x4367c8
mov ebx, 0x8000000
mov eax, dword [ebp + 0xa0]
cmp eax, 0xffffffff
jne 0x4368ac
call edi
mov dword [ebp + 0xa4], eax
add eax, 0xfffffffe
cmp eax, 0xcc
ja case.0x4367f5.13
xor ecx, ecx
mov cl, byte [eax + 0x437614]
jmp dword [ecx*4 + 0x4375e4]
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x23d
add eax, 0xc000001d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, 0xc000002b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x24f
add eax, 0xc000000a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x24f
add eax, 0xc0000009
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, 0xc000002a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x23d
add eax, 0xc000001e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [0x499e2c]
test ecx, ecx
je 0x4368d1
mov ecx, dword [esp + 0x44]
cmp ecx, 1
je 0x4368cd
test ecx, ecx
je 0x4368cd
cmp ecx, 2
je 0x4368cd
cmp ecx, 0xfffffffa
jne 0x4368d1
xor eax, eax
jmp 0x4368d8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov cl, byte [ebp + 0x10e]
test cl, cl
jne 0x43695e
mov cl, byte [ebp + 0x10c]
cmp cl, 1
mov ecx, dword [ebp + 0x11c]
jne 0x436910
test ebx, ecx
je 0x436907
mov ecx, dword [ebp + 0x118]
test ch, 0x10
je 0x436907
test ch, 1
jne 0x436957
mov byte [ebp + 0x10e], 3
jmp 0x43695e
test ebx, ecx
je 0x436936
cmp dword [ebp + 0xf4], 1
je 0x43694e
mov ecx, dword [ebp + 0x118]
test ch, 1
je 0x436957
cmp eax, 2
jne 0x436957
mov byte [ebp + 0x10e], 1
jmp 0x43695e
mov ecx, dword [ebp + 0x118]
test ch, 1
je 0x436957
cmp eax, 2
jne 0x436957
test ecx, 0x400000
je 0x436957
mov byte [ebp + 0x10e], 1
jmp 0x43695e
mov byte [ebp + 0x10e], 2
mov cl, byte [ebp + 0x10e]
cmp cl, 3
je 0x436978
cmp byte [ebp + 0x10c], 1
je 0x436978
inc dword [ebp + 0xac]
cmp cl, 1
jne 0x43698d
cmp byte [ebp + 0x10c], 1
je 0x43698d
add dword [ebp + 0xac], 5
mov ecx, dword [ebp + 0x118]
test ecx, 0x400000
je 0x4369af
test ch, 0x10
je 0x4369af
cmp byte [ebp + 0x10d], 2
jne 0x4369af
inc dword [ebp + 0xac]
test dword [ebp + 0x11c], ebx
je 0x4369c8
test ch, 0x10
je 0x4369c8
test ch, 1
je 0x4369c8
add dword [ebp + 0xac], 2
cmp eax, 1
jne 0x4369d5
or ecx, 0x800000
jmp 0x4369db
and ecx, 0xff7fffff
mov eax, ecx
mov dword [ebp + 0x118], ecx
test ah, 1
mov ebx, 0xfff7ffff
je 0x436aaa
push ebp
call fcn.004352d0
add esp, 4
test eax, eax
jne 0x4374aa
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x436a10
xor ecx, ecx
mov cl, byte [eax + 0x1e]
jmp 0x436a12
xor ecx, ecx
test ecx, ecx
je 0x436aaa
test eax, eax
je 0x436a23
mov esi, dword [eax + 0xc]
jmp 0x436a25
xor esi, esi
test byte [esi + 0x11c], 4
je 0x436a5f
cmp byte [esi + 0x10e], 1
jne 0x436a5f
mov eax, dword [esi + 0x28]
mov cl, byte [eax + 5]
cmp cl, 0x20
jne 0x436a48
mov byte [eax + 5], 0x24
jmp 0x436a51
cmp cl, 0x2b
jne 0x436a51
mov byte [eax + 5], 0
mov eax, dword [esi + 0x11c]
and al, 0xfb
mov dword [esi + 0x11c], eax
push esi
call fcn.0042c4b0
mov ecx, dword [ebp + 0x78]
add esp, 4
test ecx, ecx
je 0x436a73
mov byte [ecx + 0x1e], 0
test eax, eax
je 0x436a8f
push esi
push eax
push eax
push 1
call fcn.0042eac0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [esi + 0x8c]
mov eax, dword [esi + 0x11c]
inc ecx
and eax, ebx
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x11c], eax
mov eax, dword [ebp + 0x118]
test ah, 0x10
je 0x436acc
test eax, 0x800000
jne 0x436acc
mov eax, 0xc0000033
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [esp + 0x30]
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je case.default.0x436b45
mov edx, dword [esp + 0x160]
cmp dword [edx + 0x54], 5
jne 0x436b32
mov eax, dword [ebp + 0xa0]
xor esi, esi
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x436b0f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0xa4], eax
mov esi, 0xc0000026
mov ecx, dword [ebp + 0x118]
and ecx, 0x7fffffff
test esi, esi
mov dword [ebp + 0x118], ecx
je 0x436b32
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov ecx, dword [esp + 0x160]
mov eax, dword [ecx + 0x74]
cmp eax, 3
ja case.default.0x436b45
jmp dword [eax*4 + 0x4376e4]
or dword [ebp + 0x11c], 0x80000
jmp case.default.0x436b45
mov ecx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x11c]
and ch, 0xfb
and eax, ebx
mov dword [ebp + 0x118], ecx
mov dword [ebp + 0x8c], 1
mov dword [ebp + 0x11c], eax
jmp case.default.0x436b45
cmp dword [ecx + 0x54], 5
jne 0x436baa
mov eax, dword [ebp + 0x11c]
mov dword [ebp + 0x8c], 0x80000000
and eax, ebx
mov dword [ebp + 0x11c], eax
jmp case.default.0x436b45
test dword [ebp + 0x118], 0x800000
je case.default.0x436b45
mov ecx, dword [ebp + 0xa0]
push 2
push 0
push 0
push ecx
call edi
cmp eax, 0xffffffff
jne 0x436bea
mov edx, dword [ebp + 0xa0]
push 1
push 0
push 0
push edx
call edi
test eax, eax
je case.default.0x436b45
jmp 0x436fde
mov ebx, dword [ebp + 0x11c]
mov al, byte [ebp + 0x10c]
mov esi, dword [ebp + 0x118]
and ebx, 0xfff7ffff
mov dword [ebp + 0x11c], ebx
mov ebx, 0xfffffbff
movsx ecx, al
and esi, ebx
dec ecx
cmp ecx, 6
mov dword [ebp + 0x8c], 0x80000000
mov dword [ebp + 0x118], esi
ja case.default.0x436c2c
jmp dword [ecx*4 + 0x4376f4]
mov eax, dword [ebp + 0xa0]
push 1
push 0
push 0
push eax
call edi
mov ecx, dword [ebp + 0xa0]
push 1
push 0
push 0xfffffffffffffff7
push ecx
mov esi, eax
call edi
sub esi, eax
cmp esi, 9
je 0x436c77
mov edx, dword [ebp + 0xa0]
push 2
push 0
push 0
push edx
call edi
cmp eax, 0xffffffff
jne 0x436e7b
jmp 0x436fde
mov edx, dword [ebp + 0xa0]
lea eax, [esp + 0x24]
push 0
push eax
lea ecx, [esp + 0x3c]
push 9
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4370af
cmp dword [esp + 0x24], 9
je 0x436cbe
mov eax, dword [ebp + 0xa0]
push 2
push 0
push 0
push eax
call edi
cmp eax, 0xffffffff
jne 0x436e7b
jmp 0x436fde
test byte [ebp + 0x11c], 2
je 0x436cff
mov eax, dword [esp + 0x39]
mov ecx, dword [esp + 0x3a]
mov edx, dword [esp + 0x3b]
and eax, 0xff
shl eax, 8
and ecx, 0xff
and edx, 0xff
or eax, ecx
mov ecx, dword [esp + 0x3c]
shl eax, 8
or eax, edx
and ecx, 0xff
shl eax, 8
or eax, ecx
jmp 0x436d35
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x3b]
mov ecx, dword [esp + 0x3a]
and eax, 0xff
shl eax, 8
and edx, 0xff
and ecx, 0xff
or eax, edx
mov edx, dword [esp + 0x39]
shl eax, 8
or eax, ecx
and edx, 0xff
shl eax, 8
or eax, edx
cmp eax, 1
jne case.default.0x436b45
cmp byte [esp + 0x38], 4
jne case.default.0x436b45
push 1
push 0
push 0xfffffffffffffff7
jmp 0x436ee8
cmp byte [ebp + 0x10e], 2
jne 0x436d68
cmp al, 6
je 0x436d68
mov ecx, 1
jmp 0x436d6a
xor ecx, ecx
xor ebx, ebx
cmp al, 5
setne bl
inc ebx
push 1
add ebx, ecx
mov ecx, dword [ebp + 0xa0]
push 0
push 0
push ecx
call edi
mov edx, dword [ebp + 0xa0]
mov esi, eax
mov eax, ebx
push 1
neg eax
push 0
push eax
push edx
mov dword [esp + 0x3c], eax
call edi
sub esi, eax
cmp esi, ebx
je 0x436dbe
mov eax, dword [ebp + 0xa0]
push 2
push 0
push 0
push eax
call edi
cmp eax, 0xffffffff
jne 0x436f4d
jmp 0x436fde
mov eax, dword [ebp + 0xa0]
lea ecx, [esp + 0x24]
push 0
push ecx
lea edx, [esp + 0x3c]
push ebx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4370af
cmp dword [esp + 0x24], ebx
jne 0x436f35
cmp byte [esp + 0x34], 4
jne case.default.0x436b45
mov edx, dword [esp + 0x2c]
push 1
push 0
push edx
jmp 0x436ee8
mov ecx, dword [ebp + 0xa0]
push 1
push 0
push 0
push ecx
call edi
mov edx, dword [ebp + 0xa0]
push 1
push 0
push 0xfffffffffffffffc
push edx
mov esi, eax
call edi
sub esi, eax
cmp esi, 4
je 0x436e39
mov eax, dword [ebp + 0xa0]
push 2
push 0
push 0
push eax
jmp 0x436e70
mov eax, dword [ebp + 0xa0]
lea ecx, [esp + 0x24]
push 0
push ecx
lea edx, [esp + 0x3c]
push 4
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4370af
cmp dword [esp + 0x24], 4
je 0x436eaa
mov ecx, dword [ebp + 0xa0]
push 2
push 0
push 0
push ecx
call edi
cmp eax, 0xffffffff
je 0x436fde
mov ecx, dword [ebp + 0x11c]
mov eax, dword [ebp + 0x118]
and ecx, 0xfff7ffff
and eax, ebx
mov dword [ebp + 0x8c], 0x80000000
mov dword [ebp + 0x11c], ecx
mov dword [ebp + 0x118], eax
jmp case.default.0x436b45
test byte [ebp + 0x11c], 2
je 0x436ec3
movzx dx, byte [esp + 0x35]
xor eax, eax
mov ah, byte [esp + 0x34]
or eax, edx
jmp 0x436ecd
xor eax, eax
mov ah, byte [esp + 0x35]
mov al, byte [esp + 0x34]
cmp ax, 1
jne case.default.0x436b45
cmp byte [esp + 0x36], 0x1a
jne case.default.0x436b45
push 1
push 0
push 0xfffffffffffffffc
mov eax, dword [ebp + 0xa0]
push eax
call edi
cmp eax, 0xffffffff
jne case.default.0x436b45
jmp 0x4370af
mov ecx, dword [ebp + 0xa0]
mov ebx, 1
push ebx
push 0
push 0
push ecx
call edi
mov edx, dword [ebp + 0xac]
mov esi, eax
mov eax, dword [ebp + 0xa0]
push ebx
neg edx
push 0
push edx
push eax
call edi
mov ecx, dword [ebp + 0xac]
sub esi, eax
cmp esi, ecx
je 0x436f7d
mov ecx, dword [ebp + 0xa0]
push 2
push 0
push 0
push ecx
call edi
cmp eax, 0xffffffff
je 0x436fde
mov ecx, dword [ebp + 0x11c]
mov eax, dword [ebp + 0x118]
and ecx, 0xfff7ffff
and ah, 0xfb
mov dword [ebp + 0x8c], 0x80000000
mov dword [ebp + 0x11c], ecx
mov dword [ebp + 0x118], eax
jmp case.default.0x436b45
lea edx, [esp + 0x20]
push edx
push 0
push ecx
call fcn.0042ff10
add esp, 0xc
test eax, eax
jne 0x4374aa
mov ecx, dword [ebp + 0xac]
mov edx, dword [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebp + 0xa0]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4370af
mov ecx, dword [ebp + 0xac]
mov eax, dword [esp + 0x24]
cmp eax, ecx
je 0x437044
mov ecx, dword [ebp + 0xa0]
push 2
push 0
push 0
push ecx
call edi
cmp eax, 0xffffffff
jne 0x436ffa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0xa4], eax
mov eax, 0xc0000078
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
mov ebx, dword [ebp + 0x118]
mov edx, dword [esp + 0x20]
and eax, 0xfff7ffff
and bh, 0xfb
push edx
mov dword [ebp + 0x8c], 0x80000000
mov dword [ebp + 0x11c], eax
mov dword [ebp + 0x118], ebx
call fcn.0042ff70
add esp, 4
test eax, eax
je case.default.0x436b45
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x118]
test ah, 2
jne 0x43705f
test dword [ebp + 0x11c], 0x60000000
jne 0x43705f
mov dl, 0x20
jmp 0x437061
xor dl, dl
mov esi, dword [esp + 0x20]
cmp byte [esi], 4
jne 0x43707e
lea eax, [esi + 1]
add ecx, esi
cmp eax, ecx
jae 0x437080
cmp byte [eax], dl
jne 0x43707e
inc eax
cmp eax, ecx
jb 0x437073
jmp 0x437080
xor ebx, ebx
push esi
call fcn.0042ff70
add esp, 4
test eax, eax
jne 0x4374aa
test ebx, ebx
je case.default.0x436b45
mov ecx, dword [ebp + 0xa0]
push 1
push eax
mov eax, dword [ebp + 0xac]
neg eax
push eax
push ecx
call edi
cmp eax, 0xffffffff
jne case.default.0x436b45
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0xa4], eax
mov eax, 0xc000001e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
push 0xb19
push 0x492170
push 2
push 0xc0000008
call fcn.0042ea90
add esp, 0x10
mov eax, dword [ebp + 0x118]
test ah, 4
je 0x437145
test eax, 0x800000
je 0x437145
mov edx, dword [ebp + 0xa0]
push 2
push 0
push 0
push edx
call edi
cmp eax, 0xffffffff
jne 0x43712a
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [ebp + 0xa4], eax
je 0x43712a
mov eax, 0xc0000078
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
mov dword [ebp + 0x8c], 0x80000000
and eax, 0xfff7ffff
mov dword [ebp + 0x11c], eax
mov eax, dword [ebp + 0x118]
test ah, 4
jne 0x437178
test eax, 0x800000
je 0x437178
mov edx, dword [ebp + 0x11c]
mov ecx, 0x8000000
test ecx, edx
je 0x43716b
test ah, 0x10
jne 0x43717d
or eax, 0x80000000
mov dword [ebp + 0x118], eax
jmp 0x43717d
mov ecx, 0x8000000
mov eax, dword [ebp + 0x118]
test ah, 0x80
jne 0x437198
mov ax, word [ebp + 0xac]
mov word [ebp + 0x108], ax
jmp 0x4371eb
mov al, byte [ebp + 0x10e]
cmp al, 1
mov eax, dword [ebp + 0x11c]
jne 0x4371d3
test ecx, eax
je 0x4371b7
mov word [ebp + 0x108], 0x50
jmp 0x4371c0
mov word [ebp + 0x108], 0x51
cmp byte [ebp + 0x10c], 1
je 0x4371eb
add word [ebp + 0x108], 4
jmp 0x4371eb
test ecx, eax
je 0x4371e2
mov word [ebp + 0x108], 0x4f
jmp 0x4371eb
mov word [ebp + 0x108], 0x50
mov esi, dword [esp + 0x160]
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x437200
mov dword [esi + 0x14], 1
test dword [ebp + 0x11c], ecx
je 0x437217
mov edx, dword [esi + 0x10]
mov eax, 0x7ffffe00
cmp edx, eax
jle 0x437217
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x43723b
mov edx, dword [ebp + 0x11c]
and edx, ecx
neg edx
sbb edx, edx
and edx, 0xffffe400
add edx, 0x2000
mov dword [esi + 0x10], edx
jmp 0x437252
add eax, 0x1ff
cdq
and edx, 0x1ff
add eax, edx
sar eax, 9
shl eax, 9
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp + 0xac]
imul eax, dword [esi + 0x14]
cmp ecx, eax
jbe 0x437265
mov eax, ecx
mov dword [ebp + 0xa8], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0xf8], eax
mov eax, dword [ebp + 0x118]
test ah, 1
je 0x4372b8
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0x54
call fcn.0042ff10
add esp, 0xc
test eax, eax
je 0x4372ac
push ebp
push eax
push eax
push 1
call fcn.0042eac0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
mov dword [eax], ebp
mov eax, dword [ebp + 0x118]
test ah, 2
jne 0x4372cf
test dword [ebp + 0x11c], 0x60000000
je 0x4372e1
push esi
push ebp
call fcn.0042bc00
add esp, 8
test eax, eax
jne 0x4374aa
mov edx, dword [ebp + 0xa8]
lea esi, [ebp + 0x28]
push esi
push 0
push edx
call fcn.0042ff10
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x437307
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [esi]
mov ecx, dword [ebp + 0xac]
mov dword [ebp + 0x2c], eax
add eax, ecx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0xfc], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x437353
cmp dword [ebp + 0xf4], 7
jne 0x437353
mov ecx, dword [ebp + 0xa0]
push 1
push 0
push 0
push ecx
call edi
test eax, eax
jne 0x437353
mov eax, dword [ebp + 0x120]
or al, 0x20
mov dword [ebp + 0x120], eax
mov edx, dword [ebp + 0x118]
mov eax, 1
or edx, eax
mov dword [ebp + 0x118], edx
mov ecx, dword [0x499a90]
test ecx, ecx
jne 0x43737c
mov dword [0x499a90], eax
call fcn.00437710
mov ebx, eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20f
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2bf
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, 0xc0000025
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20e
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20a
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20c
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x20b
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x11c]
and eax, 0x10000000
neg eax
sbb eax, eax
and eax, 0x2bd
add eax, 0xc0000030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
mov eax, dword [ebp + 0x118]
test bl, al
je 0x4374cf
mov eax, 0xc000002e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
or al, 0x40
jmp 0x435ada
mov eax, dword [ebp + 0x118]
test bl, al
je 0x435ad8
pop edi
pop esi
pop ebp
mov eax, 0xc000002e
pop ebx
add esp, 0x14c
ret