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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov eax, dword [0x4b507c]
mov edi, ecx
xor esi, esi
xor eax, ebp
mov dword [esp + 0x90], eax
mov eax, 0x400
mov dword [esp + 0x8c], eax
push esi
push 2
push eax
call fcn.00410d50
add esp, 0xc
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], 0
push esi
push 0x14
push dword [edi + 0x12c]
call fcn.00410d50
add esp, 0xc
mov cl, byte [edi + 0xbe]
mov dword [esp + 0x28], eax
cmp cl, byte [edi + 0x135]
setne byte [esp + 4]
cmp byte [edi + 0xc4], 0
je 0x448c82
cmp byte [edi + 0x134], 0
je 0x448c67
cmp byte [edi + 0xc7], 0
mov eax, 0x40000000
jne 0x448c6c
xor eax, eax
cmp byte [edi + 0x10c6], 0
sete al
shl eax, 0x1e
jmp 0x448c6c
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [edi + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x54], ecx
mov edx, dword [edi + 0x94]
mov ecx, edi
mov ebx, edx
sub ebx, dword [edi + 0x10]
push 0
push 0x153d
call fcn.0044aaca
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x98]
mov ecx, edi
mov edx, esi
mov dword [esp + 0x2c], eax
push ebx
call fcn.0044d094
add esp, 4
test eax, eax
mov dword [esp + 0x20], ebx
je 0x448cd5
mov ecx, dword [edi + 0x1098]
lea edx, [ebx + ebx*4]
mov ecx, dword [ecx + edx*4 + 0xc]
mov edx, dword [esp + 0x2c]
mov edx, dword [ecx + edx*4]
jmp 0x448cdc
mov eax, dword [esi + 0x14]
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x448cf9
lea ecx, [edx + edx*4]
mov ebx, edx
xor edx, edx
cmp dword [eax + ecx*4], 0xdfff
sete dl
sub ebx, edx
mov dword [esp + 0x2c], ebx
jmp 0x448cfd
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
cmp byte [esi + 0xc], 0
je 0x448d1f
push dword [esi + 0x14]
call fcn.00410dcd
add esp, 4
push esi
call fcn.00410dcd
mov edx, dword [esp + 0x24]
add esp, 4
mov ecx, dword [edi + 0x20]
mov dword [esp], edi
test ecx, ecx
js 0x448d91
mov eax, dword [edi + 0x1c]
cmp ecx, edx
jne 0x448d3f
mov edx, dword [esp + 0x54]
cmp dword [edi + 0x24], edx
jne 0x448d3f
cmp eax, dword [esp + 0x2c]
je 0x448d91
mov edx, dword [edi + 0x18]
test eax, eax
mov ecx, dword [edx + ecx*4]
lea edx, [eax + eax*4]
mov ecx, dword [ecx + 0x14]
lea esi, [ecx + edx*4]
jle 0x448d64
cmp dword [esi], 0xdfff
jne 0x448d64
or dword [esi - 0x10], 0x3ffff
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 0x12c]
dec edi
cmp eax, edi
jge 0x448d7f
cmp dword [esi + 0x14], 0xdfff
jne 0x448d7f
or dword [esi + 0x18], 0x3ffff
or dword [ecx + edx*4 + 4], 0x3ffff
mov edi, dword [esp]
mov dword [edi + 0x24], 0
xor eax, eax
dec eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], eax
cmp dword [edi + 0x128], 0
jle 0x44999b
mov cl, byte [esp + 4]
xor eax, eax
mov al, cl
shl eax, 0x14
mov dword [esp + 0x58], eax
xor eax, eax
mov edx, dword [edi + 0x10]
mov esi, eax
mov ecx, edi
add edx, eax
mov dword [esp + 0x10], edx
push 0
push 0x1573
call fcn.0044aaca
add esp, 8
mov ebx, eax
mov ecx, edi
mov edx, eax
push esi
call fcn.0044d094
add esp, 4
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebx
je 0x448dfe
mov eax, dword [edi + 0x1098]
lea ecx, [esi + esi*4]
mov eax, dword [eax + ecx*4 + 0x10]
jmp 0x448e07
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x3c], eax
xor eax, eax
mov edx, dword [edi + 0x12c]
mov ecx, esi
mov dword [esp + 0xc], esi
test edx, edx
jle 0x4492c8
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
je 0x448e36
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x3c]
mov esi, dword [esp]
mov dword [esp + 0x14], ecx
xor eax, eax
mov edx, dword [edi + ebx + 4]
mov edi, dword [edi + ebx]
mov ecx, edx
mov dword [esp + 4], edi
and ecx, 0xfffc0000
or ecx, 0x20500
cmp byte [esi + 0x10a1], al
cmovne ecx, edx
cmp byte [esi + 0x10fb], al
jne 0x448eb5
mov edx, ecx
mov eax, 0x1ff
mov esi, ecx
mov edi, 0xfffffff0
and edx, eax
and esi, 0xfffffe00
mov eax, 0xf0
add edx, edi
or esi, 0x100
cmp edx, eax
mov edx, 0x1ff
cmovae esi, ecx
mov ecx, esi
shr ecx, 9
and ecx, edx
add ecx, edi
cmp ecx, eax
jae 0x448eb3
and esi, 0xfffc01ff
or esi, 0x20400
mov ecx, esi
mov edx, dword [esp]
cmp byte [edx + 0x10fc], 0
je 0x448ed6
mov eax, dword [esp + 0x3c]
movsd xmm0, qword [eax + ebx + 8]
movsd qword [esp + 0x80], xmm0
jmp 0x448ee6
xor eax, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
mov edx, dword [esp + 4]
and edx, 0xffffff00
cmp edx, 0xda00
je 0x448f36
cmp edx, 0xd900
je 0x448f1f
cmp edx, 0xd800
jne 0x448f59
mov edx, dword [esp]
movzx esi, byte [esp + 4]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x210]
jmp 0x448f48
mov edx, dword [esp]
movzx esi, byte [esp + 4]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x610]
jmp 0x448f48
mov edx, dword [esp]
movzx esi, byte [esp + 4]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x10]
movzx edx, word [edx]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], edx
jmp 0x448f61
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
dec edx
cmp eax, edx
jge 0x448f80
mov esi, dword [esp + 0x3c]
mov eax, ecx
or eax, 0x400000
cmp dword [esi + ebx + 0x14], 0xdfff
cmove ecx, eax
mov eax, dword [esp]
mov edx, edi
mov eax, dword [eax + 0xe1c]
and eax, 0xfffffffe
cmp eax, 2
jne 0x44904c
mov eax, dword [esp]
cmp dword [eax + 0xe20], 0
mov esi, dword [eax + 0xe28]
mov eax, dword [eax + 0xe2c]
je 0x448ff2
cmp esi, dword [esp + 0x10]
jg 0x44904c
cmp eax, dword [esp + 0x18]
jg 0x44904c
mov edx, dword [esp]
mov edi, dword [esp + 0x10]
mov esi, ecx
xor eax, eax
xor esi, dword [esp + 0x58]
cmp edi, dword [edx + 0xe30]
jg 0x44917e
mov edi, dword [esp + 0x18]
cmp edi, dword [edx + 0xe34]
mov edi, edx
mov edx, dword [esp + 0x20]
jl 0x449045
jmp 0x449057
xor edx, edx
cmp eax, dword [esp + 0x18]
setle dl
xor eax, eax
cmp esi, dword [esp + 0x10]
setl al
cmove eax, edx
mov edx, dword [esp + 0x20]
cmp al, 1
jne 0x44904c
mov edx, dword [esp]
mov esi, dword [esp + 0x18]
xor eax, eax
cmp esi, dword [edx + 0xe34]
mov esi, dword [esp + 0x10]
mov edi, edx
setl al
xor edx, edx
cmp esi, dword [edi + 0xe30]
mov esi, ecx
setl dl
cmove edx, eax
xor esi, dword [esp + 0x58]
xor eax, eax
test dl, dl
mov edx, dword [esp + 0x20]
je 0x449057
mov eax, 0x100000
jmp 0x449057
mov esi, ecx
mov edi, dword [esp]
xor eax, eax
xor esi, dword [esp + 0x58]
xor esi, eax
bt ecx, 0x15
jae 0x449098
cmp byte [edi + 0xc9], 0
je 0x449098
cmp byte [edi + 0x134], 0
mov ecx, dword [esp + 0xc]
je 0x4490a0
mov eax, edi
mov edi, edx
cmp byte [eax + 0xc8], 0
je 0x4490a2
mov eax, dword [esp]
mov eax, dword [eax + 0x1060]
movzx eax, word [eax + 0x250]
mov dword [esp + 4], eax
jmp 0x4490a2
mov ecx, dword [esp + 0xc]
mov edi, edx
jmp 0x4490a8
mov edi, edx
and esi, 0xffdfffff
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
cmp edx, dword [eax + ebx]
jne 0x4490da
mov eax, dword [eax + ebx + 4]
mov ecx, eax
and ecx, 0xf7fffff
cmp esi, ecx
mov ecx, dword [esp + 0xc]
jne 0x4490da
and eax, 0x800000
or esi, eax
jmp 0x44910c
bt esi, 0x16
jb 0x44910c
mov eax, dword [esp]
mov eax, dword [eax + 0x1058]
mov ecx, dword [eax]
push dword [esp + 4]
push eax
call dword [ecx + 0x10]
mov edi, dword [esp + 0x28]
add esp, 8
mov ecx, esi
or ecx, 0x800000
cmp eax, 2
cmove esi, ecx
mov ecx, dword [esp + 0xc]
cmp ecx, edi
jne 0x449130
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x14]
jne 0x449130
mov eax, dword [esp + 0x54]
mov edx, dword [esp]
mov dword [edx + 0x24], eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], edi
or esi, eax
mov edi, edx
jmp 0x449133
mov edi, dword [esp]
mov eax, dword [esp + 0x28]
mov dword [eax + ebx + 4], esi
mov edx, eax
mov eax, dword [esp + 4]
mov dword [edx + ebx], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [edx + ebx + 0xc], ecx
mov dword [edx + ebx + 8], eax
mov dword [edx + ebx + 0x10], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
add ebx, 0x14
mov edx, dword [edi + 0x12c]
inc ecx
cmp ecx, edx
jl 0x448e23
jmp 0x449189
mov edi, edx
mov edx, dword [esp + 0x20]
jmp 0x449057
mov ecx, dword [esp + 0xc]
test edx, edx
jle 0x4492c8
xor ebx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov esi, dword [edi + 0x18]
lea edi, [ebx*4]
mov dword [esp + 0x1c], edx
mov edx, ebx
lea ebx, [edi + edi*4]
mov dword [esp + 4], edx
mov esi, dword [esi + ecx*4]
mov ecx, edx
mov ecx, dword [esp + 0x24]
mov esi, dword [esi + 0x14]
movzx ecx, cl
mov eax, dword [esi + ebx + 4]
mov edi, dword [esi + ebx]
mov dword [esp + 0x14], eax
test eax, eax
mov eax, dword [esp + 0x18]
cmovs eax, edx
mov dword [esp + 0x18], eax
mov eax, 0
cmovs ecx, eax
mov eax, dword [esp + 0x28]
cmp edi, dword [eax + ebx]
jne 0x449233
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 4]
and edi, 0xfffffff
lea ebx, [edx + edx*4]
cmp edi, dword [eax + ebx*4 + 4]
jne 0x449233
mov dword [esp + 0x24], ecx
test cl, 1
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jne 0x4492a2
jmp 0x4492b8
mov edx, dword [esp + 0x14]
test cl, 1
jne 0x44928a
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov al, 1
cmp ecx, ebx
jge 0x449298
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp]
mov edx, dword [esp + 0xc]
add eax, ecx
lea ecx, [ecx + ecx*4]
lea edi, [ecx*4 + 4]
or dword [esi + edi], 0x3ffff
add edi, 0x14
inc eax
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + edx*4]
mov esi, dword [ecx + 0x14]
jne 0x449265
mov ebx, dword [esp + 4]
mov ecx, edx
lea eax, [ebx + ebx*4]
mov edi, dword [esi + eax*4 + 4]
jmp 0x4492a2
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
jmp 0x4492a0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov edi, edx
mov edx, dword [esp]
lea eax, [ebx + ebx*4]
or edi, 0x3ffff
mov dword [esi + eax*4 + 4], edi
mov edx, dword [edx + 0x12c]
mov edi, dword [esp]
dec dword [esp + 0x10]
inc ebx
cmp ebx, edx
jl 0x4491af
mov eax, dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [edi + 0x18]
movzx eax, word [eax]
mov ecx, dword [ecx + edx*4]
cmp ax, word [ecx]
mov word [ecx], ax
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
setne bl
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], eax
cmp dword [edi + 0x12c], 0
jle 0x44995c
mov edx, ecx
mov dword [esp + 0x44], ecx
shr ecx, 0x10
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x6c], ecx
mov ecx, eax
shr eax, 0x10
shr edx, 0x18
shr ecx, 0x18
mov dword [esp + 0x74], eax
mov eax, ebx
xor ebx, ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x64], eax
mov eax, ebx
lea eax, [ebx*4]
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x28]
lea ebx, [eax + eax*4]
mov eax, dword [edi + 0x18]
mov esi, dword [edx + ebx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0x14]
movzx edx, dl
mov dword [esp + 4], eax
mov eax, dword [eax + ebx + 4]
mov dword [esp + 0x7c], eax
xor eax, esi
bt eax, 0x16
mov eax, 1
cmovb edx, eax
mov eax, esi
mov esi, dword [ecx + ebx]
xor eax, dword [esp + 0x40]
mov dword [esp + 0x64], edx
test dword [edi + 0x1040], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], ebx
setne dl
cmp byte [ecx + ebx + 8], al
jne 0x44941a
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 9], bh
jne 0x44941a
mov ebx, dword [esp + 0x74]
cmp byte [ecx + eax*4 + 0xa], bl
jne 0x44941a
mov ebx, dword [esp + 0x70]
cmp byte [ecx + eax*4 + 0xb], bl
jne 0x44941a
mov ebx, dword [esp + 0x44]
cmp byte [ecx + eax*4 + 0xc], bl
jne 0x44941a
mov ebx, dword [esp + 0x44]
cmp byte [ecx + eax*4 + 0xd], bh
jne 0x44941a
mov ebx, dword [esp + 0x6c]
cmp byte [ecx + eax*4 + 0xe], bl
jne 0x44941a
mov ebx, dword [esp + 0x68]
cmp byte [ecx + eax*4 + 0xf], bl
je 0x44941c
mov dl, 1
lea eax, [esi - 0x23ba]
mov dword [esp + 0x50], esi
cmp eax, 4
jb 0x44944a
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x44944c
lea eax, [eax + eax*4]
mov esi, 0xffffdc46
mov eax, dword [ecx + eax*4 - 0x14]
add eax, esi
mov esi, dword [esp + 0x50]
cmp eax, 3
ja 0x44944c
mov dl, 1
mov eax, esi
mov edi, esi
and esi, 0xfffffe00
mov ebx, dword [esp + 0x3c]
movzx edx, dl
and eax, 0xfffffc00
and edi, 0xffffff00
cmp esi, 0xf000
mov esi, 0
cmove esi, edi
cmp eax, 0xd800
mov eax, dword [esp + 0x24]
cmove esi, edi
cmp esi, dword [esp + 0x78]
lea ecx, [ebx + eax]
mov eax, 1
cmovne edx, eax
mov eax, dword [esp + 0x14]
lea edi, [eax + eax*4]
cmp dword [ebx + edi*4 + 0x10], 0
mov dword [esp + 0x60], edi
je 0x449506
mov dl, 1
cmp dword [ecx], 0xdffe
jne 0x4494b1
mov dl, 1
jmp 0x4494c8
cmp eax, 2
jl 0x4494c8
cmp dword [ecx - 0x14], 0xdfff
jne 0x4494c8
cmp dword [ecx - 0x28], 0xdffe
je 0x4494ad
mov eax, dword [esp]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x1060]
mov ecx, ebx
and cl, 1
mov byte [esp + 0xb], cl
mov al, byte [eax + 4]
mov ah, al
or ah, cl
je 0x449512
mov ebx, dword [esp + 0x10]
test dl, dl
jne 0x449551
mov eax, ebx
mov byte [esp + 0xb], bl
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
jmp 0x449641
test eax, eax
jle 0x4494a5
cmp dword [ecx - 4], 0
jne 0x4494a3
jmp 0x4494a5
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x10]
and ecx, 0xfffffff
cmp ecx, dword [esp + 0x1c]
jne 0x44953f
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 4]
cmp dword [ebx + edi*4], ecx
mov ebx, dword [esp + 0x10]
je 0x449551
test bl, 1
sete cl
cmp dword [esp + 0x30], 1
sete ah
test ah, cl
je 0x4494ef
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
lea edi, [ecx + edx + 8]
mov cl, 1
mov edx, ebx
and bl, cl
cmp dword [esp + 0x30], 0
jle 0x4495df
or dl, byte [esp + 0x5c]
and dl, cl
je 0x4495df
sub esp, 0x1c
movsd xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x14], xmm0
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x54]
mov dword [esp], ecx
mov ecx, edi
call fcn.00452b96
add esp, 0x1c
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x1060]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + edx*4]
mov al, byte [eax + 4]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 4], ecx
mov edx, dword [edi]
mov edi, dword [edi + 4]
test al, al
movzx eax, byte [esp + 0x5c]
movzx ecx, bl
mov dword [esp + 0x78], esi
cmove ecx, eax
mov eax, edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x44], edi
shr edi, 0x18
mov dword [esp + 0x80], edx
mov dword [esp + 0x4c], edx
xor ebx, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
shr eax, 0x10
mov dword [esp + 0x6c], eax
mov eax, edx
shr edx, 0x18
shr eax, 0x10
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
lea esi, [eax + ecx*4 + 0x10]
mov eax, dword [esp + 4]
lea ecx, [eax + ecx*4]
push edi
mov edi, dword [esp + 0x54]
push edi
call fcn.00452d66
add esp, 8
movzx ecx, byte [esp + 0xb]
mov byte [esp + 0xb], al
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x10], ecx
push 0
mov eax, 2
push eax
push ebx
push eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x48]
call fcn.00410dd9
add esp, 0x18
lea ecx, [edi - 0x10001]
cmp ecx, 0xffffe
ja 0x4496d0
lea ecx, [edi - 0x10000]
lea edi, [ebx + 1]
mov edx, ecx
and ecx, 0x3ff
shr edx, 0xa
or ecx, 0xdc00
add edx, 0xffffd800
mov word [eax + ebx*2 + 2], cx
jmp 0x4496d4
mov edx, edi
mov edi, ebx
mov word [eax + ebx*2], dx
inc edi
mov ecx, dword [esi]
test ecx, ecx
je 0x4497c6
mov esi, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x34], eax
mov ebx, dword [esi + ecx*4]
mov dword [esp + 4], ecx
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xda00
je 0x44973b
cmp eax, 0xd900
je 0x449726
cmp eax, 0xd800
jne 0x44974e
mov eax, dword [esp]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x210]
jmp 0x44974b
mov eax, dword [esp]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x610]
jmp 0x44974b
mov eax, dword [esp]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x10]
movzx ebx, word [eax]
push 0
mov eax, 2
push eax
push edi
push eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x48]
call fcn.00410dd9
add esp, 0x18
lea ecx, [ebx - 0x10001]
cmp ecx, 0xffffe
ja 0x4497a1
add ebx, 0xffff0000
lea ecx, [edi + 1]
mov edx, ebx
and ebx, 0x3ff
shr edx, 0xa
or ebx, 0xdc00
add edx, 0xffffd800
mov word [eax + edi*2 + 2], bx
jmp 0x4497a5
mov edx, ebx
mov ecx, edi
mov word [eax + edi*2], dx
mov edx, dword [esp + 4]
mov edi, ecx
inc edi
lea esi, [esi + edx*4]
mov ecx, dword [esi + 0x10]
test ecx, ecx
jne 0x4496e7
or dword [esp + 0x40], 0x80000000
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
cmp byte [esp + 0xb], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
jne 0x449861
mov edi, dword [esp]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov eax, dword [edi + 0x18]
mov edx, ebx
mov ecx, dword [eax + ecx*4]
push dword [esp + 0x18]
call fcn.00451d88
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [edi + 0x18]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x48], ebx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi + 4], edx
mov edx, dword [esp + 0x44]
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi + 0xc], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + esi + 8], edx
jne 0x44985d
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
or dword [eax + edx*4 + 4], 0x80000000
mov edx, dword [esp + 0x1c]
bt edx, 0x16
jb 0x449873
mov ebx, dword [esp + 0x14]
mov edi, dword [esp]
jmp 0x4498fd
mov ebx, dword [esp + 0x14]
mov edi, dword [esp]
inc ebx
cmp ebx, dword [edi + 0x12c]
jge 0x4498fd
add dword [esp + 0x18], 0x14
cmp ecx, dword [esp + 0x20]
jne 0x4498af
cmp ebx, dword [esp + 0x2c]
jne 0x4498af
push 0x1695
push 0x4ad1e4
push 0x4aece8
call fcn.0047b5ef
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [edi + 0x18]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
lea ecx, [ebx + ebx*4]
mov edx, esi
shl ecx, 2
add ecx, dword [eax + 0x14]
mov dword [esp + 4], eax
push dword [esi + 4]
push dword [esi]
call fcn.00452d66
add esp, 8
mov ecx, dword [esp + 0x10]
test al, al
mov eax, 1
mov edx, ebx
movzx ecx, cl
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
push esi
call fcn.00451d88
mov ecx, dword [esp + 0x10]
add esp, 4
inc ebx
cmp ebx, dword [edi + 0x12c]
jl 0x449361
test byte [esp + 0x10], 1
mov eax, dword [esp + 0x34]
je 0x449966
mov edx, dword [esp + 0x30]
test edx, edx
jle 0x449966
sub esp, 0x1c
movsd xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x14], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
mov ecx, edi
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov edx, ebx
mov dword [esp + 0x10], esi
mov dword [esp], eax
call fcn.00452b96
add esp, 0x1c
jmp 0x44996a
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
jmp 0x44996e
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
cmp byte [ebx + 0xc], 0
je 0x449988
push dword [ebx + 0x14]
call fcn.00410dcd
add esp, 4
push ebx
call fcn.00410dcd
add esp, 4
mov eax, dword [esp + 0xc]
inc eax
cmp eax, dword [edi + 0x128]
jl 0x448db8
jmp 0x44999f
mov esi, dword [esp + 0x28]
push esi
call fcn.00410dcd
add esp, 4
push dword [esp + 0x34]
call fcn.00410dcd
add esp, 4
mov ecx, dword [esp + 0x90]
xor ecx, ebp
call fcn.0046f2c8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret