Function at 0x4179a0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
mov ecx, dword [ebp + 8]
push ebx
push esi
xor eax, eax
mov esi, dword [ecx + 4]
push edi
cmp esi, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], esi
jne 0x4179de
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x48]
mov dword [ebp - 0x40], edi
mov eax, dword [edi + 0xc]
mov ecx, 1
cmp eax, ecx
jle 0x417a93
lea ebx, [eax - 1]
mov eax, dword [edi + 0x4c]
test eax, 0x10000000
mov dword [edi + 0xc], ebx
je 0x417b0b
test eax, 0x20000000
je 0x417b0b
mov edx, dword [ebp + 0xc]
movsx ecx, byte [edx]
cmp ecx, 2
jne 0x417a32
mov edx, dword [ebp - 0xc]
test edx, edx
jne 0x417a32
cmp dword [ebp - 8], 1
jg 0x417a32
or eax, 0x20000000
jmp 0x417a37
and eax, 0xdfffffff
cmp ecx, 1
mov dword [edi + 0x4c], eax
jne 0x417a55
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x417a55
cmp dword [ebp - 8], ecx
jg 0x417a55
mov eax, dword [edi + 0x4c]
or eax, 0x40000000
jmp 0x417a5d
mov eax, dword [edi + 0x4c]
and eax, 0xbfffffff
push esi
mov dword [edi + 0x4c], eax
call fcn.00428400
add esp, 4
test eax, eax
jne 0x4184f4
mov eax, dword [edi + 0x4c]
mov dword [edi + 0xc], ebx
test eax, 0x10000000
je 0x417a89
test eax, 0x20000000
jne 0x418367
or eax, 0x20000000
mov dword [edi + 0x4c], eax
jmp 0x417b0b
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 2
jne 0x417ab5
mov edx, dword [ebp - 0xc]
test edx, edx
jne 0x417ab5
cmp dword [ebp - 8], ecx
jg 0x417ab5
mov edx, dword [edi + 0x4c]
or edx, 0x20000000
jmp 0x417abe
mov edx, dword [edi + 0x4c]
and edx, 0xdfffffff
cmp eax, ecx
mov dword [edi + 0x4c], edx
jne 0x417ada
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x417ada
cmp dword [ebp - 8], ecx
jg 0x417ada
mov eax, edx
or eax, 0x40000000
jmp 0x417ae2
mov eax, dword [edi + 0x4c]
and eax, 0xbfffffff
push esi
mov dword [edi + 0x4c], eax
call fcn.00428400
add esp, 4
test eax, eax
jne 0x4184f4
mov eax, dword [edi + 0x4c]
test eax, 0x10000000
je 0x417b0b
test eax, 0x20000000
jne 0x418374
movsx eax, byte [edi + 0x48]
add eax, 0xfffffffe
cmp eax, 0x1a
ja case.0x417b23.8
xor ecx, ecx
mov cl, byte [eax + 0x4186ac]
jmp dword [ecx*4 + 0x418690]
push esi
call fcn.004221e0
add esp, 4
test eax, eax
jne 0x4184f4
jmp 0x417c1f
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
cmp al, 1
je 0x417bbf
cmp al, 2
je 0x417bbb
mov ecx, dword [edi + 0x4c]
test ecx, 0x200000
jne 0x417bbb
mov eax, dword [esi + 0x120]
test ah, 1
je 0x418388
test ecx, 0x80000000
je 0x418388
mov ebx, dword [ebp - 8]
lea ecx, [ebp - 0xc8]
push ebx
lea edx, [ebp - 0x20]
push ecx
lea eax, [ebp + 0x10]
push edx
lea ecx, [ebp + 0xc]
push eax
push ecx
call fcn.00428fc0
add esp, 0x14
test eax, eax
je 0x418388
mov edx, dword [ebp + 0xc]
cmp byte [edx], 2
jne 0x417ce3
cmp ebx, 2
jl 0x4183a4
mov dword [ebp - 0x28], 1
jmp 0x417f5d
cmp al, 1
jne 0x417bd3
mov ebx, dword [ebp - 8]
cmp ebx, 2
jge 0x417bd6
mov dword [ebp - 0x28], 1
jmp 0x417f5d
mov ebx, dword [ebp - 8]
cmp al, 2
jne 0x417be3
cmp ebx, 2
jl 0x4183a4
lea eax, [ebp + 0x10]
push ebx
lea ecx, [ebp + 0xc]
push eax
push ecx
call fcn.00428f30
add esp, 0xc
cmp eax, 2
jne 0x417c01
cmp ebx, eax
jl 0x4183a4
cmp eax, 1
jne 0x417c0e
mov dword [ebp - 0x28], eax
jmp 0x417f5d
push esi
call fcn.004221e0
add esp, 4
test eax, eax
jne 0x4184f4
mov ecx, dword [esi + 0x90]
mov eax, dword [esi + 0x120]
mov edx, dword [esi + 0x2c]
inc ecx
and eax, 0xfff7ffff
mov dword [esi + 0x38], edx
mov dword [esi + 0x90], ecx
mov dword [esi + 0x120], eax
jmp case.0x417b23.4
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
xor eax, eax
test ecx, ecx
jle case.0x417b23.4
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x34]
cmp ecx, ebx
jb 0x417c68
mov byte [edx + eax], 0x20
jmp 0x417c74
mov cl, byte [ecx]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x2c]
inc ecx
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x120]
test ch, 0x20
je 0x417c85
inc dword [esi + 0xc4]
mov ecx, dword [edi + 0x38]
inc eax
cmp eax, ecx
jl 0x417c58
jmp case.0x417b23.4
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov al, byte [edx]
cmp al, 1
jne 0x417caf
cmp ebx, 2
jge 0x417caf
mov dword [ebp - 0x28], 1
jmp 0x417f5d
cmp al, 2
jne 0x417cbc
cmp ebx, 2
jl 0x4183a4
lea eax, [ebp + 0x10]
push ebx
lea ecx, [ebp + 0xc]
push eax
push ecx
call fcn.00428f30
add esp, 0xc
cmp eax, 2
jne 0x417cda
cmp ebx, eax
jl 0x4183a4
cmp eax, 1
jne case.0x417b23.4
mov dword [ebp - 0x28], 1
jmp 0x417f5d
mov ebx, 1
mov dword [ebp - 0x44], ebx
jmp 0x417cfe
mov ebx, 1
cmp dword [ebp - 8], ebx
jle 0x417dcb
mov eax, dword [ebp - 0xc8]
cmp eax, 8
je 0x417d43
cmp eax, 7
je 0x417d43
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
add esi, ecx
test eax, eax
mov dword [ebp - 0x20], esi
je 0x417dbc
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], eax
jmp 0x417f52
mov eax, dword [ebp - 0xc]
xor edx, edx
cmp eax, edx
je 0x417d66
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
jmp 0x417f5d
cmp dword [ebp - 0x3c], edx
je 0x417d6e
mov dword [ebp - 0xc], ebx
mov esi, dword [ebp - 0xc4]
xor eax, eax
cmp esi, edx
jle 0x417d99
lea ecx, [ebp - 0xe4]
mov ebx, dword [ebp + eax*4 - 0x68]
add ecx, 4
sub ebx, dword [ebp + eax*4 - 0x100]
imul ebx, dword [ecx - 4]
add edx, ebx
inc eax
cmp eax, esi
jl 0x417d80
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0x68]
add edx, ecx
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0xc8]
push edx
push eax
push 0
call fcn.00429210
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x18]
dec eax
mov dword [ebp - 8], eax
jmp 0x417f52
lea ecx, [ebp - 0xc8]
lea edx, [ebp - 0x20]
push ecx
lea eax, [ebp + 0x10]
push edx
lea ecx, [ebp + 0xc]
push eax
push ecx
call fcn.00428c10
add esp, 0x10
test eax, eax
jne 0x4183b4
mov ebx, dword [ebp - 0x18]
mov ecx, 2
cmp ebx, ecx
je 0x4183c7
mov esi, 1
cmp ebx, esi
jne 0x417e0f
mov dword [ebp - 0x28], esi
jmp 0x417f5d
mov eax, dword [ebp - 0xc8]
cmp eax, 8
je 0x417e7f
cmp eax, 7
je 0x417e7f
cmp eax, 5
je 0x417e46
cmp eax, 6
je 0x417e46
cmp ebx, 0x1c
jl 0x417e3e
cmp ebx, 0x2c
jg 0x417e3e
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], esi
jmp 0x417f4f
mov dword [ebp - 8], esi
jmp 0x417f4f
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x417e55
mov eax, dword [ebp - 0x1c]
cdq
idiv ecx
jmp 0x417e6c
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x120]
and eax, 0x100
neg eax
sbb eax, eax
and eax, ecx
test eax, eax
mov dword [ebp - 8], eax
jne 0x417f4f
mov dword [ebp - 0x34], esi
jmp 0x417f5d
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x417e8e
mov eax, dword [ebp - 0x1c]
cdq
idiv ecx
jmp 0x417ea5
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + 0x120]
and eax, 0x100
neg eax
sbb eax, eax
and eax, ecx
test eax, eax
mov dword [ebp - 8], eax
jne 0x417eb4
mov dword [ebp - 0x34], esi
jmp 0x417f5d
cmp ebx, 0x1c
jl 0x417ec6
cmp ebx, 0x2c
jg 0x417ec6
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0xc], esi
jmp 0x417ecd
mov dword [ebp - 0x3c], 0
mov ebx, dword [ebp - 0xc4]
xor eax, eax
test ebx, ebx
jle 0x417f05
lea esi, [ebp - 0x68]
lea ecx, [ebp - 0xb4]
mov edx, dword [ecx - 4]
mov edi, dword [ecx]
mov dword [ebp + eax*4 - 0x100], edx
mov dword [ebp + eax*4 - 0xe4], edi
mov dword [esi], edx
inc eax
add ecx, 0xc
add esi, 4
cmp eax, ebx
jl 0x417ee2
mov edi, dword [ebp - 0x40]
xor eax, eax
xor edx, edx
test ebx, ebx
jle 0x417f2c
lea ecx, [ebp - 0xe4]
mov esi, dword [ebp + eax*4 - 0x68]
add ecx, 4
sub esi, dword [ebp + eax*4 - 0x100]
imul esi, dword [ecx - 4]
add edx, esi
inc eax
cmp eax, ebx
jl 0x417f13
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0x68]
add edx, ecx
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0xc8]
push edx
push eax
push 0
call fcn.00429210
mov ebx, dword [ebp - 0x18]
add esp, 0xc
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x4182f5
mov eax, dword [ebp - 0x28]
xor esi, esi
cmp eax, esi
jne 0x418527
cmp dword [ebp - 0x34], esi
je 0x417f91
mov eax, dword [edi + 0xc]
cmp eax, esi
jne 0x417f85
mov esi, dword [ebp - 4]
mov dword [edi + 0xc], 2
jmp case.0x417b23.4
mov esi, dword [ebp - 4]
inc eax
mov dword [edi + 0xc], eax
jmp case.0x417b23.4
mov ecx, dword [edi + 0x4c]
mov dword [ebp - 0x30], esi
and ecx, 0xf7ffffff
mov dword [ebp - 0x10], esi
mov dword [edi + 0x4c], ecx
mov ecx, dword [edi]
test dword [ecx + 0x120], 0x10000
je 0x417fd2
movsx edx, byte [edi + 0x48]
mov ecx, dword [edx*4 + 0x45fe50]
cmp ecx, esi
je 0x417fd2
mov eax, dword [ebp - 0x18]
movsx ecx, byte [ecx + eax]
cmp ecx, esi
je 0x417fd5
mov eax, ecx
mov dword [ebp - 0x18], eax
jmp 0x417fd5
mov eax, dword [ebp - 0x18]
mov dl, byte [edi + 0x48]
movsx ecx, dl
add ecx, 0xffffffed
cmp ecx, 0x1e
ja case.0x417fef.19
xor ebx, ebx
mov bl, byte [ecx + 0x4186f4]
jmp dword [ebx*4 + 0x4186c8]
cmp eax, 5
jl 0x41809b
cmp eax, 0x11
jg 0x41809b
movsx eax, byte [eax + 0x45fca3]
mov dword [edi + 0x38], eax
mov word [edi + 0x42], si
mov word [edi + 0x40], si
jmp case.0x417fef.19
cmp eax, 5
jl 0x41809b
cmp eax, 0x11
jg 0x41809b
mov dword [edi + 0x38], 2
mov word [edi + 0x42], si
mov word [edi + 0x40], si
jmp case.0x417fef.19
cmp eax, 0x19
jl 0x41809b
cmp eax, 0x33
jg 0x41809b
jmp 0x418053
cmp eax, 0x19
jl 0x41807d
cmp eax, 0x33
jg 0x41807d
add eax, 0xffffffe7
lea eax, [eax + eax*2]
movsx ecx, byte [eax + 0x45fd78]
mov dword [edi + 0x38], ecx
movsx cx, byte [eax + 0x45fd79]
mov word [edi + 0x40], cx
movsx ax, byte [eax + 0x45fd7a]
mov word [edi + 0x42], ax
jmp case.0x417fef.19
cmp eax, 5
jl 0x41809b
cmp eax, 0x11
jg 0x41809b
movsx ecx, byte [eax + 0x45fca3]
mov dword [edi + 0x38], ecx
mov word [edi + 0x42], si
mov word [edi + 0x40], si
jmp case.0x417fef.19
mov dword [ebp - 0x10], 0xc000003d
jmp case.0x417fef.19
movsx eax, word [eax*2 + 0x45fcf8]
cmp eax, 0xffffffff
mov dword [edi + 0x38], eax
mov word [edi + 0x42], si
mov word [edi + 0x40], si
jne case.0x417fef.19
mov ecx, dword [ebp - 0x14]
lea eax, [ecx*8]
cmp eax, 0x11
jge 0x4180f9
mov eax, 0x11
jmp 0x4180f9
movsx eax, byte [eax + 0x45fcb8]
cmp eax, 0xffffffff
mov dword [edi + 0x38], eax
mov word [edi + 0x42], si
mov word [edi + 0x40], si
jne case.0x417fef.19
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
cmp eax, 7
jge 0x4180f9
mov eax, 7
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 0x10]
cmp eax, esi
jne 0x418549
cmp dl, 0x13
jne 0x418112
mov ecx, dword [ebp - 0x14]
mov dword [edi + 0x38], ecx
mov eax, dword [ebp - 4]
cmp dl, 0x1d
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x48], eax
je 0x41812c
cmp dl, 0x13
mov dword [ebp - 0x10], 1
jne 0x41812f
mov dword [ebp - 0x10], esi
mov edx, dword [edi + 0x38]
mov esi, dword [ebp - 4]
xor ebx, ebx
test edx, edx
jle 0x418236
cmp eax, dword [esi + 0x34]
jae 0x41815f
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x418154
cmp byte [eax], 0x2c
je 0x41822f
inc ebx
inc eax
cmp ebx, edx
jl 0x41813f
jmp 0x418236
mov eax, dword [esi + 0x120]
test al, 0x80
jne 0x418177
test ah, 1
jne 0x4183e5
jmp 0x418210
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x418187
xor ecx, ecx
mov cl, byte [eax + 0x1f]
mov eax, ecx
jmp 0x418189
xor eax, eax
test eax, eax
je 0x418191
test ebx, ebx
je 0x418210
mov eax, edx
lea edx, [ebp - 0x24]
mov dword [ebp - 0x2c], eax
push edx
inc eax
push 0
push eax
call fcn.00426d40
add esp, 0xc
test eax, eax
jne 0x4184f4
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 0x24]
mov ecx, ebx
mov esi, dword [edx + 0x2c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 0x20202020
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
sub ecx, ebx
lea edi, [esi + ebx]
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x40]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [edx + 0xc0]
sub ecx, ebx
add eax, ecx
mov dword [edx + 0xc0], eax
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x418220
xor edx, edx
mov dl, byte [eax + 0x1f]
mov eax, edx
jmp 0x418222
xor eax, eax
test eax, eax
je 0x418236
mov dword [ebp - 0x38], 1
jmp 0x418236
mov dword [ebp - 0x30], 1
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0xc0]
test eax, eax
jne 0x418249
mov dword [edi + 0x38], ebx
mov ecx, dword [ebp - 0x30]
mov edx, dword [esi + 0xc4]
mov eax, dword [ebp - 0x48]
add ecx, ebx
add edx, ecx
mov dword [esi + 0xc4], edx
lea edx, [ebp - 0x20]
push edx
push eax
push edi
call fcn.00427960
add esp, 0xc
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x418432
mov eax, dword [esi + 0x120]
test ah, 1
jne 0x4182a3
cmp byte [edi + 0x48], 0x13
jne 0x4182a3
mov eax, dword [esi + 0x2c]
mov ecx, dword [ebp - 0x14]
lea edx, [ecx + eax]
cmp edx, dword [esi + 0x34]
jb 0x4182a3
mov edx, dword [ebp - 0x30]
add edx, ecx
add edx, eax
mov dword [esi + 0x2c], edx
jmp 0x4182b0
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi + 0x2c]
add eax, ebx
add ecx, eax
mov dword [esi + 0x2c], ecx
mov eax, dword [esi + 0xc0]
test eax, eax
jne 0x4182c0
mov ecx, dword [ebp - 0x4c]
mov dword [edi + 0x38], ecx
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4182e2
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], 0
push edx
call fcn.00426da0
add esp, 4
test eax, eax
jne 0x4184f4
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x418527
mov esi, dword [ebp - 4]
jmp case.0x417b23.4
cmp ebx, 5
mov dword [ebp - 0x44], 0
jl 0x418508
cmp ebx, 0x11
jg 0x418508
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x2c]
sub ecx, edx
mov eax, 0
sets al
dec eax
and eax, ecx
lea ecx, [ebx - 5]
cmp ecx, 0xc
ja case.default.0x418330
jmp dword [ecx*4 + 0x418714]
mov byte [esi], al
mov esi, dword [ebp - 4]
jmp case.0x417b23.4
mov word [esi], ax
mov esi, dword [ebp - 4]
jmp case.0x417b23.4
mov dword [esi], eax
mov esi, dword [ebp - 4]
jmp case.0x417b23.4
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 4]
mov dword [eax + 4], edx
jmp case.0x417b23.4
inc ebx
xor eax, eax
mov dword [edi + 0xc], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x4183dc
inc eax
mov dword [edi + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc000003c
push 0xc000003c
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edi + 0xc], 2
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push ebx
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4183d8
mov dword [edi + 0xc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc eax
mov dword [edi + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4183f5
xor edx, edx
mov dl, byte [eax + 0x1f]
mov eax, edx
jmp 0x4183f7
xor eax, eax
test eax, eax
push esi
je 0x418417
push 0xc000010c
push 0xc000010c
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc0000043
push 0xc0000043
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x418442
xor ecx, ecx
mov cl, byte [eax + 0x1f]
mov eax, ecx
jmp 0x418444
xor eax, eax
test eax, eax
je 0x4184a5
mov eax, dword [esi + 0x120]
test ah, 0x20
je 0x4184a5
movsx eax, byte [esi + 0x116]
add eax, 0xfffffffb
cmp eax, 0xc
ja case.default.0x418330
jmp dword [eax*4 + 0x418748]
mov edx, dword [esi + 0x68]
mov al, byte [esi + 0xc4]
mov byte [edx], al
jmp 0x4184a5
mov ecx, dword [esi + 0x68]
mov dx, word [esi + 0xc4]
mov word [ecx], dx
jmp 0x4184a5
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0xc4]
mov dword [eax], ecx
jmp 0x4184a5
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0x68]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x30]
mov ecx, dword [esi + 0x2c]
mov eax, dword [ebp - 0x2c]
add edx, ebx
add ecx, edx
test eax, eax
mov dword [esi + 0x2c], ecx
je 0x4184dd
mov eax, dword [ebp - 0x24]
push eax
call fcn.00426da0
add esp, 4
test eax, eax
je 0x4184dd
push esi
push eax
push eax
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
push esi
push eax
push eax
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
push ecx
push 0xc000003d
push 0xc000003d
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x4c]
test eax, 0x2000000
je 0x418560
mov edx, dword [edi + 4]
and eax, 0xfdffffff
push edx
mov dword [edi + 0x4c], eax
call fcn.00426da0
add esp, 4
test eax, eax
je 0x418560
mov ecx, dword [ebp - 4]
push ecx
push eax
push eax
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0x11c]
mov ebx, dword [esi + 0x120]
mov edx, dword [esi + 0xb8]
and eax, 0xfdc6ffff
and ebx, 0xfffffddf
push edx
mov dword [esi + 0x11c], eax
mov dword [esi + 0x120], ebx
call fcn.004269f0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4185af
push esi
push ecx
push ecx
push 0
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4185e6
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00426da0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4185e6
push esi
push ecx
push ecx
push 0
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4185f6
xor edx, edx
mov dl, byte [eax + 0x1f]
mov eax, edx
jmp 0x4185f8
xor eax, eax
test eax, eax
je 0x418628
mov eax, dword [esi + 0x120]
test ah, 0x20
je 0x418628
movsx eax, byte [esi + 0x116]
add eax, 0xfffffffb
cmp eax, 0xc
ja case.default.0x418330
jmp dword [eax*4 + 0x41877c]
mov eax, dword [esi + 0x68]
mov dl, byte [esi + 0xc4]
mov byte [eax], dl
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x41864b
push esi
push 0xc000010c
push 0xc000010c
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x68]
mov dx, word [esi + 0xc4]
mov word [eax], dx
jmp 0x418628
mov eax, dword [esi + 0x68]
mov edx, dword [esi + 0xc4]
mov dword [eax], edx
jmp 0x418628
mov eax, dword [esi + 0xc4]
mov edi, dword [esi + 0x68]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x418628
pop edi
pop esi
mov eax, 0xc0000030
pop ebx
mov esp, ebp
pop ebp
ret