Function at 0x40b8ff
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov esi, ecx
mov eax, dword [0x500034]
xor eax, esp
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], 0x400
push 0
push 2
push 0x400
call fcn.004392c8
add esp, 0xc
mov dword [esp + 0x14], eax
push 0
push 0x14
push dword [esi + 0x12c]
call fcn.004392c8
add esp, 0xc
mov cl, byte [esi + 0xbe]
cmp cl, byte [esi + 0x135]
mov dword [esp + 0x20], eax
setne al
cmp byte [esi + 0xc4], 0
mov byte [esp + 0x10], al
je 0x40b96c
cmp byte [esi + 0x134], 0
je 0x40b976
mov eax, 0x40000000
cmp byte [esi + 0xc7], 0
jne 0x40b97b
xor eax, eax
cmp byte [esi + 0x10d2], 0
sete al
shl eax, 0x1e
jmp 0x40b97b
mov dword [esp + 0x68], 0
jmp 0x40b991
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [esi + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x68], ecx
mov edx, dword [esi + 0x94]
mov ebx, edx
sub ebx, dword [esi + 0x10]
mov ecx, esi
push 0
push 0x17ab
call fcn.0040e158
add esp, 8
mov edi, eax
mov ebp, dword [esi + 0x98]
mov ecx, esi
mov edx, eax
push ebx
call fcn.00411658
add esp, 4
test eax, eax
mov dword [esp], esi
mov dword [esp + 0x30], ebx
je 0x40b9df
mov ecx, dword [esi + 0x10a4]
lea edx, [ebx + ebx*4]
mov ecx, dword [ecx + edx*4 + 0xc]
mov ebp, dword [ecx + ebp*4]
jmp 0x40b9e2
mov eax, dword [edi + 0x14]
mov esi, edi
mov edi, dword [esp + 0x20]
test ebp, ebp
jle 0x40ba03
lea ecx, [ebp*4]
add ecx, ebp
xor edx, edx
cmp dword [eax + ecx*4], 0xdfff
sete dl
sub ebp, edx
mov dword [esp + 0x4c], ebp
cmp byte [esi + 0xc], 0
je 0x40ba21
push dword [esi + 0x14]
call fcn.00439358
add esp, 4
push esi
call fcn.00439358
add esp, 4
mov eax, dword [esp]
mov ebp, eax
mov ecx, dword [eax + 0x20]
test ecx, ecx
js 0x40baa1
mov esi, ebp
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0x68]
cmp dword [ebp + 0x24], edx
jne 0x40ba47
cmp ecx, dword [esp + 0x30]
jne 0x40ba47
cmp eax, dword [esp + 0x4c]
je 0x40baa1
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 0x14]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*4]
test eax, eax
jle 0x40ba6c
cmp dword [esi], 0xdfff
jne 0x40ba6c
or dword [esi - 0x10], 0x3ffff
mov eax, dword [ebp + 0x1c]
mov ebp, dword [ebp + 0x12c]
add ebp, 0xffffffff
cmp eax, ebp
jge 0x40ba89
cmp dword [esi + 0x14], 0xdfff
jne 0x40ba89
or dword [esi + 0x18], 0x3ffff
or dword [ecx + edx*4 + 4], 0x3ffff
mov eax, dword [esp]
mov ebp, eax
mov dword [eax + 0x24], 0
mov edi, dword [esp + 0x20]
mov eax, ebp
mov dword [ebp + 0x20], 0xffffffff
mov dword [ebp + 0x1c], 0xffffffff
cmp dword [ebp + 0x128], 0
jle 0x40c9ef
xor eax, eax
mov cl, byte [esp + 0x10]
mov al, cl
shl eax, 0x14
mov dword [esp + 0x6c], eax
xor eax, eax
jmp 0x40bb10
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
cmp byte [ebx + 0xc], 0
je 0x40bafa
push dword [ebx + 0x14]
call fcn.00439358
add esp, 4
push ebx
call fcn.00439358
add esp, 4
mov eax, dword [esp + 0x10]
add eax, 1
mov ebp, dword [esp]
cmp eax, dword [ebp + 0x128]
jge 0x40c9ef
mov edx, dword [ebp + 0x10]
add edx, eax
mov esi, eax
mov ecx, ebp
mov dword [esp + 0xc], edx
push 0
push 0x17e1
call fcn.0040e158
add esp, 8
mov ebx, eax
mov ecx, ebp
mov edx, eax
push esi
call fcn.00411658
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov dword [esp + 0x10], esi
mov edi, ebp
mov dword [esp + 0x3c], ebx
je 0x40bb68
mov eax, dword [edi + 0x10a4]
lea ecx, [esi + esi*4]
mov eax, dword [eax + ecx*4 + 0x10]
jmp 0x40bb71
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x38], eax
xor eax, eax
mov edx, dword [edi + 0x12c]
test edx, edx
jle 0x40c0a8
mov ecx, edx
xor ebp, ebp
xor ebx, ebx
mov edi, edx
mov dword [esp + 0x2c], eax
jmp 0x40bbe2
mov edx, dword [esp]
mov eax, dword [esp + 0x20]
mov dword [eax + ebp + 4], esi
mov esi, eax
mov eax, dword [esp + 4]
mov dword [esi + ebp], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esi + ebp + 0xc], ecx
mov dword [esi + ebp + 8], eax
mov dword [esi + ebp + 0x10], 0
add ebx, 1
mov edi, dword [edx + 0x12c]
add ebp, 0x14
cmp ebx, edi
mov eax, dword [esp + 0x2c]
jge 0x40bf18
mov ecx, ebx
test eax, eax
je 0x40bbeb
mov ecx, dword [eax + ebx*4]
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [eax + ebp + 4]
mov ecx, edx
and ecx, 0xfffc0000
or ecx, 0x20500
mov esi, dword [esp]
cmp byte [esi + 0x10ad], 0
cmovne ecx, edx
cmp byte [esi + 0x110b], 0
jne 0x40bc62
mov edx, ecx
and edx, 0x1ff
add edx, 0xfffffff0
mov esi, ecx
and esi, 0xfffffe00
or esi, 0x100
cmp edx, 0xf0
cmovae esi, ecx
mov edx, esi
shr edx, 9
and edx, 0x1ff
add edx, 0xfffffff0
mov ecx, esi
and ecx, 0xfffc01ff
or ecx, 0x20400
cmp edx, 0xf0
cmovae ecx, esi
mov edx, dword [esp]
cmp byte [edx + 0x110c], 0
je 0x40bc98
mov eax, dword [esp + 0x38]
mov edx, dword [eax + ebp + 8]
mov esi, dword [eax + ebp + 0xc]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], edx
jmp 0x40bcb2
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x38]
mov eax, dword [eax + ebp]
mov edx, eax
and edx, 0xffffff00
cmp edx, 0xda00
je 0x40bd18
cmp edx, 0xd900
je 0x40bcf8
cmp edx, 0xd800
jne 0x40bd2d
mov edx, dword [esp]
mov edx, dword [edx + 0x106c]
movzx esi, al
lea edx, [edx + esi*2]
add edx, 0x20c
jmp 0x40bd2a
mov edx, dword [esp]
mov edx, dword [edx + 0x106c]
movzx esi, al
lea edx, [edx + esi*2]
add edx, 0x60c
jmp 0x40bd2a
mov edx, dword [esp]
mov edx, dword [edx + 0x106c]
movzx esi, al
lea edx, [edx + esi*2]
add edx, 0xc
movzx eax, word [edx]
add edi, 0xffffffff
cmp ebx, edi
mov dword [esp + 4], eax
jge 0x40bd4e
mov eax, ecx
or eax, 0x400000
mov edx, dword [esp + 0x38]
cmp dword [edx + ebp + 0x14], 0xdfff
cmove ecx, eax
mov eax, dword [esp]
mov eax, dword [eax + 0xe28]
and eax, 0xfffffffe
cmp eax, 2
jne 0x40be08
mov eax, dword [esp]
cmp dword [eax + 0xe2c], 0
mov esi, dword [eax + 0xe34]
mov edx, dword [eax + 0xe38]
je 0x40bdb4
cmp esi, dword [esp + 0xc]
jg 0x40be08
cmp edx, dword [esp + 8]
jg 0x40be08
mov esi, ecx
xor esi, dword [esp + 0x6c]
xor eax, eax
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
cmp edi, dword [edx + 0xe3c]
jg 0x40be10
mov edi, dword [esp + 8]
cmp edi, dword [edx + 0xe40]
jl 0x40bdfe
jmp 0x40be10
xor eax, eax
cmp edx, dword [esp + 8]
setle al
xor edx, edx
cmp esi, dword [esp + 0xc]
setl dl
cmove edx, eax
cmp dl, 1
jne 0x40be08
xor eax, eax
mov esi, dword [esp]
mov edx, dword [esp + 8]
cmp edx, dword [esi + 0xe40]
setl al
xor edx, edx
mov edi, dword [esp + 0xc]
cmp edi, dword [esi + 0xe3c]
setl dl
cmove edx, eax
mov esi, ecx
xor esi, dword [esp + 0x6c]
xor eax, eax
test dl, dl
je 0x40be10
mov eax, 0x100000
jmp 0x40be10
mov esi, ecx
xor esi, dword [esp + 0x6c]
xor eax, eax
xor esi, eax
mov eax, dword [esp]
cmp byte [eax + 0xc9], 0
je 0x40be68
and ecx, 0x200000
je 0x40be68
mov eax, dword [esp]
cmp byte [eax + 0x134], 0
mov ecx, dword [esp + 0x10]
je 0x40be53
cmp byte [eax + 0xc8], 0
je 0x40be53
mov eax, dword [esp]
mov eax, dword [eax + 0x106c]
movzx eax, word [eax + 0x24c]
mov dword [esp + 4], eax
and esi, 0xffdfffff
jmp 0x40be6c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax + ebp]
jne 0x40bea8
mov eax, dword [eax + ebp + 4]
mov ecx, eax
and ecx, 0xf7fffff
cmp esi, ecx
mov ecx, dword [esp + 0x10]
jne 0x40bea8
and eax, 0x800000
or esi, eax
jmp 0x40bed8
test esi, 0x400000
jne 0x40bed8
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
mov ecx, dword [eax]
push dword [esp + 4]
push eax
call dword [ecx + 0x10]
add esp, 8
mov ecx, esi
or ecx, 0x800000
cmp eax, 2
cmove esi, ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
cmp ecx, eax
jne 0x40bb98
mov eax, dword [esp + 0x4c]
cmp eax, ebx
jne 0x40bb98
mov ecx, eax
mov eax, dword [esp + 0x68]
or esi, eax
mov edx, dword [esp]
mov dword [edx + 0x24], eax
mov dword [edx + 0x1c], ecx
mov eax, dword [esp + 0x30]
mov dword [edx + 0x20], eax
jmp 0x40bb9b
mov dword [esp + 0x2c], edi
test edi, edi
mov edi, dword [esp]
jle 0x40c0a8
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 4], 0
jmp 0x40bf6b
lea eax, [ecx + ecx*4]
mov eax, dword [esi + eax*4 + 4]
mov dword [esp + 8], eax
mov bl, 1
lea eax, [ecx + ecx*4]
mov edx, dword [esp + 8]
or edx, 0x3ffff
mov dword [esi + eax*4 + 4], edx
mov eax, dword [edi + 0x12c]
add ecx, 1
mov dword [esp + 0x2c], eax
cmp ecx, eax
jge 0x40c0a8
mov edx, dword [edi + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [edx + eax*4]
mov esi, dword [edx + 0x14]
lea edx, [ecx*4]
lea edx, [edx + edx*4]
mov ebp, dword [esi + edx]
mov edi, dword [esi + edx + 4]
test edi, edi
mov eax, dword [esp + 4]
cmovs eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ebx
movzx ebx, bl
mov eax, 0
cmovs ebx, eax
mov eax, dword [esp + 0x20]
cmp ebp, dword [eax + edx]
mov dword [esp + 8], edi
jne 0x40bfd8
and edi, 0xfffffff
lea ebp, [ecx + ecx*4]
mov dword [esp + 0xc], ebx
mov edx, ebx
and dl, 1
cmp edi, dword [eax + ebp*4 + 4]
je 0x40c011
test dl, dl
mov edi, dword [esp]
mov ebx, dword [esp + 0xc]
je 0x40bfe4
jmp 0x40c018
mov eax, dword [esp + 0xc]
test bl, 1
mov edi, dword [esp]
jne 0x40c008
mov bl, 1
mov eax, ecx
mov edx, dword [esp + 4]
sub eax, edx
jle 0x40bf45
lea ebx, [edx + 1]
test al, 1
jne 0x40c029
mov eax, edx
jmp 0x40c043
mov ebx, eax
mov edx, ebx
and dl, 1
jmp 0x40c018
mov edi, dword [esp]
mov ebx, dword [esp + 0xc]
test dl, dl
mov eax, dword [esp + 0x2c]
jne 0x40bf45
jmp 0x40bf5c
lea eax, [edx + edx*4]
or dword [esi + eax*4 + 4], 0x3ffff
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x14]
mov eax, ebx
cmp ecx, ebx
mov ebp, dword [esp + 0x10]
je 0x40bf38
lea edx, [eax*4]
lea ebx, [edx + edx*4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
or dword [esi + ebx + 4], 0x3ffff
mov edx, dword [edi + 0x18]
mov edx, dword [edx + ebp*4]
mov edx, dword [edx + 0x14]
or dword [edx + ebx + 0x18], 0x3ffff
add eax, 2
mov edx, dword [edi + 0x18]
mov edx, dword [edx + ebp*4]
mov esi, dword [edx + 0x14]
add ebx, 0x28
cmp ecx, eax
jne 0x40c068
jmp 0x40bf38
mov eax, dword [esp + 0x3c]
movzx eax, word [eax]
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + edx*4]
cmp ax, word [ecx]
setne bl
mov word [ecx], ax
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], eax
cmp dword [edi + 0x12c], 0
jle 0x40bad8
mov edx, ecx
shr edx, 0x10
mov dword [esp + 0x54], edx
mov edx, eax
shr edx, 0x10
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], ecx
shr ecx, 0x18
mov dword [esp + 0x50], ecx
mov dword [esp + 0xc], eax
shr eax, 0x18
mov dword [esp + 0x58], eax
xor ebp, ebp
mov dword [esp + 0x70], 0
xor edx, edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x1c], ebx
mov eax, ebx
mov dword [esp + 0x74], eax
mov esi, edi
mov ecx, dword [esp + 0x10]
jmp 0x40c1a5
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov esi, ebp
mov ebp, dword [eax + ecx*4]
lea ecx, [esi + esi*4]
shl ecx, 2
add ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x44]
mov edx, ebx
call fcn.00418518
mov ecx, dword [esp + 0x1c]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, ebp
mov ebp, esi
mov edx, esi
push ebx
call fcn.00416d98
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 4]
add ebp, 1
mov esi, dword [esp]
cmp ebp, dword [esi + 0x12c]
jge 0x40c978
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
lea eax, [ebp*4]
lea ebp, [eax + eax*4]
mov edi, dword [esp + 0x20]
mov ebx, dword [edi + ebp + 4]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [eax + ebp + 4]
mov ecx, eax
xor ecx, ebx
test ecx, 0x400000
mov edx, dword [esp + 0x74]
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x2c], ebx
mov ecx, ebx
xor ecx, dword [esp + 0x48]
test dword [esi + 0x104c], ecx
setne cl
mov edx, dword [esp + 0xc]
cmp byte [edi + ebp + 8], dl
jne 0x40c258
mov edx, dword [esp + 8]
lea edx, [edx + edx*4]
mov ebx, dword [esp + 0xc]
cmp byte [edi + edx*4 + 9], bh
jne 0x40c258
mov ebx, dword [esp + 0x5c]
cmp byte [edi + edx*4 + 0xa], bl
jne 0x40c258
mov ebx, dword [esp + 0x58]
cmp byte [edi + edx*4 + 0xb], bl
jne 0x40c258
mov ebx, dword [esp + 0x40]
cmp byte [edi + edx*4 + 0xc], bl
jne 0x40c258
mov ebx, dword [esp + 0x40]
cmp byte [edi + edx*4 + 0xd], bh
jne 0x40c258
mov ebx, dword [esp + 0x54]
cmp byte [edi + edx*4 + 0xe], bl
jne 0x40c258
mov ebx, dword [esp + 0x50]
cmp byte [edi + edx*4 + 0xf], bl
je 0x40c25a
nop
mov cl, 1
mov dword [esp + 0x64], ebp
mov edi, dword [edi + ebp]
lea edx, [edi - 0x23ba]
cmp edx, 4
mov edx, dword [esp + 8]
jb 0x40c28b
test edx, edx
jle 0x40c28d
lea edx, [edx + edx*4]
mov esi, dword [esp + 0x20]
mov edx, dword [esi + edx*4 - 0x14]
mov esi, 0xffffdc46
add edx, esi
cmp edx, 3
ja 0x40c28d
mov cl, 1
mov edx, edi
and edx, 0xfffffc00
mov esi, edi
and esi, 0xfffffe00
mov ebx, edi
and ebx, 0xffffff00
cmp esi, 0xdc00
mov ebp, dword [esp + 8]
mov esi, 0
cmove esi, ebx
cmp edx, 0xd800
cmove esi, ebx
mov dword [esp + 0x7c], esi
cmp esi, dword [esp + 0x78]
movzx edx, cl
mov ecx, 1
cmovne edx, ecx
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
add ecx, esi
lea ebx, [ebp*4]
add ebx, ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
cmp dword [esi + ebx*4 + 0x10], 0
mov esi, ebp
je 0x40c448
mov dl, 1
cmp dword [ecx], 0xdffe
mov ebp, dword [esp + 0x20]
jne 0x40c318
mov dl, 1
jmp 0x40c338
cmp esi, 2
jl 0x40c338
cmp dword [ecx - 0x14], 0xdfff
jne 0x40c338
cmp dword [ecx - 0x28], 0xdffe
je 0x40c309
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x44], ecx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x106c]
mov cl, byte [ecx]
mov ebx, dword [esp + 0x74]
and bl, 1
mov ch, cl
or ch, bl
mov dword [esp + 0x28], edi
mov byte [esp + 0x27], bl
jne 0x40c418
mov esi, ebp
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
cmp dword [ebp + ebx*4], edi
mov ebx, ebp
jne 0x40c488
and eax, 0xfffffff
cmp eax, dword [esp + 0x2c]
jne 0x40c488
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x34]
cmp byte [ebx + edi*4 + 8], al
mov ebp, esi
jne 0x40c498
cmp byte [ebx + edi*4 + 9], ah
jne 0x40c498
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
cmp byte [ebx + edi*4 + 0xa], al
jne 0x40c498
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x34]
cmp byte [ebx + edi*4 + 0xb], al
mov edi, dword [esp + 0x34]
jne 0x40c498
mov eax, dword [esp + 0x40]
cmp byte [ebx + edi*4 + 0xc], al
jne 0x40c498
cmp byte [ebx + edi*4 + 0xd], ah
jne 0x40c498
mov eax, dword [esp + 0x54]
cmp byte [ebx + edi*4 + 0xe], al
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 8]
jne 0x40c492
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
cmp byte [ebx + edi*4 + 0xf], al
mov eax, dword [esp + 0x1c]
je 0x40c424
jmp 0x40c492
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test dl, dl
je 0x40c468
test al, 1
je 0x40c4bd
mov al, 1
mov dword [esp + 0xc], eax
cmp dword [esp + 4], 0
jg 0x40c4d7
jmp 0x40c526
test esi, esi
jle 0x40c2fd
cmp dword [ecx - 4], 0
jne 0x40c2fb
jmp 0x40c2fd
mov byte [esp + 0x27], al
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x64]
jmp 0x40c59c
mov eax, dword [esp + 0x1c]
mov ebp, esi
mov esi, dword [esp + 8]
test al, 1
je 0x40c4a8
jmp 0x40c420
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 8]
test al, 1
jne 0x40c420
cmp dword [esp + 4], 1
jne 0x40c420
mov dl, 1
mov dword [esp + 0xc], edx
test al, 1
jne 0x40c4d7
test byte [esp + 0x70], 1
je 0x40c905
mov dword [esp + 0xc], 0
cmp dword [esp + 4], 0
jle 0x40c526
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp]
mov ecx, ebx
mov edx, dword [esp + 0x3c]
push esi
mov ebp, dword [esp + 0x24]
push eax
push dword [esp + 0x50]
push dword [esp + 0x10]
push dword [esp + 0x24]
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x78]
call fcn.00418368
add esp, 0x1c
mov eax, dword [ebx + 0x106c]
mov cl, byte [eax]
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 8]
mov ebx, dword [eax + 0x14]
mov edi, dword [esp + 0x64]
lea eax, [edi + ebp]
add eax, 8
mov edx, dword [eax]
mov ebp, ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], edx
test cl, cl
movzx eax, byte [esp + 0x70]
movzx ecx, byte [esp + 0xc]
cmove ecx, eax
mov dword [esp + 0x70], ecx
mov ecx, ebx
mov ebx, ebp
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x54], eax
mov eax, edx
shr eax, 0x10
mov dword [esp + 0x5c], eax
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x50], eax
mov eax, edx
shr eax, 0x18
mov dword [esp + 0x58], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
mov dword [esp + 0xc], edx
mov al, byte [ebx + edi + 8]
mov dl, 1
mov dword [esp + 0x1c], edx
mov ebp, dword [esp + 0x38]
cmp al, byte [ebp + edi + 8]
mov dword [esp + 0x40], ecx
jne 0x40c638
mov al, byte [ebx + edi + 9]
cmp al, byte [ebp + edi + 9]
jne 0x40c638
mov al, byte [ebx + edi + 0xa]
cmp al, byte [ebp + edi + 0xa]
jne 0x40c638
mov al, byte [ebx + edi + 0xb]
cmp al, byte [ebp + edi + 0xb]
jne 0x40c638
mov al, byte [ebx + edi + 0xc]
cmp al, byte [ebp + edi + 0xc]
jne 0x40c638
mov al, byte [ebx + edi + 0xd]
cmp al, byte [ebp + edi + 0xd]
jne 0x40c638
mov al, byte [ebx + edi + 0xe]
cmp al, byte [ebp + edi + 0xe]
jne 0x40c638
mov al, byte [ebx + edi + 0xf]
cmp al, byte [ebp + edi + 0xf]
jne 0x40c638
lea eax, [ebx + edi]
mov edi, dword [esp + 0x28]
cmp dword [eax], edi
jne 0x40c625
mov ecx, dword [esp + 0x34]
mov ecx, dword [ebx + ecx*4 + 4]
xor ecx, dword [esp + 0x2c]
test ecx, 0xfffffff
je 0x40c912
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
jmp 0x40c64c
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
push 0
push 2
push ebx
push 2
lea eax, [esp + 0x98]
push eax
push ecx
call fcn.00439368
add esp, 0x18
lea ecx, [edi - 0x10001]
cmp ecx, 0xffffe
ja 0x40c6a8
mov edx, edi
add edi, 0x3ff0000
shr edi, 0xa
add edi, 0xffffd800
lea ecx, [ebx + 1]
and edx, 0x3ff
or edx, 0xdc00
mov word [eax + ebx*2 + 2], dx
jmp 0x40c6aa
mov ecx, ebx
mov edx, dword [esp + 0x34]
lea edx, [edx*4 + 0x10]
add edx, ebp
mov dword [esp + 0x14], eax
mov word [eax + ebx*2], di
add ecx, 1
mov edi, ecx
mov eax, dword [edx]
test eax, eax
je 0x40c7e8
mov esi, dword [esp + 0x44]
mov edx, edi
jmp 0x40c6f8
mov edx, ebx
mov ecx, edi
mov dword [esp + 0x14], eax
mov word [eax + edi*2], dx
mov eax, dword [esi + ebp*4 + 0x10]
lea esi, [esi + ebp*4]
mov edx, ecx
add edx, 1
test eax, eax
je 0x40c7c8
lea ebp, [eax + eax*4]
mov ebx, dword [esi + ebp*4]
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xda00
je 0x40c758
cmp eax, 0xd900
je 0x40c738
cmp eax, 0xd800
jne 0x40c76d
mov eax, dword [esp]
mov eax, dword [eax + 0x106c]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x20c
jmp 0x40c76a
mov eax, dword [esp]
mov eax, dword [eax + 0x106c]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x60c
jmp 0x40c76a
mov eax, dword [esp]
mov eax, dword [eax + 0x106c]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0xc
movzx ebx, word [eax]
push 0
push 2
push edx
push 2
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x28]
mov edi, edx
call fcn.00439368
add esp, 0x18
lea ecx, [ebx - 0x10001]
cmp ecx, 0xffffe
ja 0x40c6d8
lea edx, [ebx + 0x3ff0000]
shr edx, 0xa
add edx, 0xffffd800
lea ecx, [edi + 1]
and ebx, 0x3ff
or ebx, 0xdc00
mov word [eax + edi*2 + 2], bx
jmp 0x40c6dc
or dword [esp + 0x48], 0x80000000
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
jmp 0x40c7f2
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, edi
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x18]
test bl, bl
jne 0x40c8aa
mov dword [esp + 4], edx
mov edi, dword [esp]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [eax + ecx*4]
mov edx, ebp
push dword [esp + 0x44]
call fcn.00416d98
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov esi, ebp
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
mov dword [eax + ebp], edx
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [eax + ebp + 4], edx
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov ebx, dword [esp + 0x40]
mov dword [eax + ebp + 0xc], ebx
mov edx, dword [esp + 0xc]
mov dword [eax + ebp + 8], edx
mov ebp, esi
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x54], eax
mov eax, edx
shr eax, 0x10
mov dword [esp + 0x5c], eax
shr ebx, 0x18
mov dword [esp + 0x50], ebx
shr edx, 0x18
mov dword [esp + 0x58], edx
cmp dword [esp + 0x60], esi
jne 0x40c8a2
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x34]
or dword [eax + edx*4 + 4], 0x80000000
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 4]
test dword [esp + 0x2c], 0x400000
je 0x40c193
add ebp, 1
mov edi, dword [esp]
cmp ebp, dword [edi + 0x12c]
jge 0x40c193
mov dword [esp + 4], edx
add dword [esp + 0x44], 0x14
cmp ecx, eax
jne 0x40c148
cmp ebp, dword [esp + 0x4c]
jne 0x40c148
push 0x1905
push 0x4f454e
push 0x4f7820
call fcn.004adb0b
mov ecx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x40c148
mov dword [esp + 0xc], 0
jmp 0x40c526
mov ecx, dword [esp + 0x44]
nop
nop
mov esi, dword [eax + 0x10]
mov edx, dword [ecx + 0x10]
test edx, edx
sete bl
test esi, esi
je 0x40c94e
test edx, edx
je 0x40c625
lea esi, [esi + esi*4]
mov ebx, dword [eax + esi*4]
lea eax, [eax + esi*4]
lea edx, [edx + edx*4]
lea esi, [ecx + edx*4]
cmp ebx, dword [ecx + edx*4]
mov ebp, dword [esp + 0x38]
mov ecx, esi
je 0x40c918
jmp 0x40c625
mov dword [esp + 0x18], ebx
test edx, edx
movzx ecx, byte [esp + 0x27]
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x40c62d
test byte [esp + 0x1c], 1
je 0x40c9d8
test edx, edx
jle 0x40c9d8
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp]
mov ebx, dword [esp + 0x3c]
mov edi, edx
mov edx, ebx
push esi
mov esi, dword [esp + 0x24]
push eax
push dword [esp + 0x50]
push edi
mov edi, esi
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x78]
call fcn.00418368
add esp, 0x1c
cmp byte [ebx + 0xc], 0
jne 0x40bae6
jmp 0x40bafa
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
cmp byte [ebx + 0xc], 0
jne 0x40bae6
jmp 0x40bafa
push edi
call fcn.00439358
add esp, 4
push dword [esp + 0x14]
call fcn.00439358
add esp, 4
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.0049e348
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret