Function at 0x4a2250
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov al, byte [ecx + 0x14]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov bh, byte [ecx + 0x1c]
mov edx, ecx
mov dword [esp + 0xc], ecx
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp], esi
mov al, bh
add al, 5
cmp al, 0x20
jbe 0x4a22f1
nop word cs:[eax + eax]
nop
cmp byte [esp + 4], 4
jne 0x4a2314
mov bl, bh
mov eax, 0
add bl, 0xf8
mov byte [edx + 0x1c], bl
mov edi, dword [edx + 0x10]
shr edi, 8
mov dword [edx + 0x10], edi
mov esi, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp]
cmp edx, esi
sbb eax, ecx
mov eax, esi
cmovb eax, edx
cmp edx, eax
jb 0x4a3827
je 0x4a22fd
mov edx, dword [esp + 8]
add esi, 1
mov bh, bl
adc ecx, 0
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0xc]
shl eax, 0x18
mov dword [edx], esi
mov dword [edx + 4], ecx
or eax, edi
mov dword [edx + 0x10], eax
mov al, bh
add al, 5
cmp al, 0x20
ja 0x4a2290
mov edi, dword [edx + 0x10]
mov cl, bh
shr edi, cl
and edi, 0x1f
jmp 0x4a2316
mov edx, dword [esp + 0xc]
add bh, 0xfd
mov al, bh
mov dword [edx + 0x14], 0x2502
mov dword [edx + 0x18], 0x6843e8
xor edi, edi
mov byte [edx + 0x1c], al
mov ecx, dword [edx + 0x14]
mov esi, dword [edx + 0x18]
mov dword [edx + 0x14], 4
mov dword [edx + 0x18], 0
cmp cl, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
jne 0x4a26b7
mov esi, dword [esp + 0xc]
add edi, 0x101
mov dword [esp + 0x38], edi
mov ah, al
add ah, 5
cmp ah, 0x20
jbe 0x4a23c0
nop word cs:[eax + eax]
mov ah, al
mov ecx, esi
mov edx, dword [esp]
add ah, 0xf8
mov byte [esi + 0x1c], ah
mov edi, dword [esi + 0x10]
shr edi, 8
mov dword [esi + 0x10], edi
mov esi, dword [esi]
mov ebx, dword [ecx + 4]
mov ecx, 0
cmp edx, esi
sbb ecx, ebx
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3829
je 0x4a23d3
mov edx, dword [esp + 8]
add esi, 1
mov al, ah
adc ebx, 0
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0xc]
shl ecx, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], ebx
or ecx, edi
mov dword [edx + 0x10], ecx
mov ah, al
add ah, 5
cmp ah, 0x20
ja 0x4a2360
mov edx, dword [esi + 0x10]
mov ecx, eax
xor edi, edi
shr edx, cl
mov ecx, 4
and edx, 0x1f
jmp 0x4a23e7
mov esi, dword [esp + 0xc]
add al, 0xfd
mov ecx, 0x2502
mov edi, 0x6843e8
xor edx, edx
mov ah, al
cmp cl, 4
mov byte [esi + 0x1c], ah
mov dword [esp + 0x10], ecx
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 4
mov dword [esp + 0x14], edi
jne 0x4a26b7
movzx ecx, dx
mov dword [esp + 4], edx
inc ecx
mov dword [esp + 0x40], ecx
mov word [esp + 0x5e], cx
mov al, ah
add al, 4
cmp al, 0x20
jbe 0x4a248d
nop word cs:[eax + eax]
nop dword [eax]
mov al, ah
mov ecx, esi
mov edx, dword [esp]
add al, 0xf8
mov byte [esi + 0x1c], al
mov edi, dword [esi + 0x10]
shr edi, 8
mov dword [esi + 0x10], edi
mov esi, dword [esi]
mov ebx, dword [ecx + 4]
mov ecx, 0
cmp edx, esi
sbb ecx, ebx
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3829
je 0x4a24a0
mov edx, dword [esp + 8]
add esi, 1
mov ah, al
adc ebx, 0
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0xc]
shl ecx, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], ebx
or ecx, edi
mov dword [edx + 0x10], ecx
mov al, ah
add al, 4
cmp al, 0x20
ja 0x4a2430
mov edx, dword [esi + 0x10]
mov cl, ah
xor edi, edi
shr edx, cl
mov ecx, 4
and edx, 0xf
jmp 0x4a24b5
mov esi, dword [esp + 0xc]
add ah, 0xfc
xor edx, edx
mov ecx, 0x2502
mov edi, 0x6843e8
mov al, ah
cmp cl, 4
mov byte [esi + 0x1c], al
mov dword [esp + 0x10], ecx
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 4
mov dword [esp + 0x14], edi
jne 0x4a26b7
cmp word [esp + 4], 0x1d
jbe 0x4a2572
lea ecx, [esp + 0xa0]
mov dword [esp + 0x10], 0x61fe5c
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 0
lea eax, [esp + 0x5e]
lea edx, [esp + 0x10]
mov dword [esp + 0xa0], 0x61fe6c
mov dword [esp + 0xa4], 0x45a1b0
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], 0x4647c0
mov dword [esp + 0x24], 2
call fcn.0040a660
mov eax, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
lea edx, [esp + 0x10]
mov ecx, 0x15
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm0
call fcn.004a3e30
mov ebx, eax
mov edi, edx
jmp 0x4a26d6
xorps xmm0, xmm0
add edx, 4
mov ecx, 0x61fe70
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xaf], 0
lea edi, str.The_length_of__distance_code_bitwidthes__is_too_large:_actual__expected
cmp ecx, edi
je 0x4a268b
mov edi, dword [ecx]
dec edx
add ecx, 4
mov dword [esp + 4], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edi
mov ah, al
add ah, 3
cmp ah, 0x20
jbe 0x4a2620
nop word [eax + eax]
mov ah, al
mov ecx, esi
mov edx, dword [esp]
add ah, 0xf8
mov byte [esi + 0x1c], ah
mov edi, dword [esi + 0x10]
shr edi, 8
mov dword [esi + 0x10], edi
mov esi, dword [esi]
mov ebx, dword [ecx + 4]
mov ecx, 0
cmp edx, esi
sbb ecx, ebx
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3829
je 0x4a2640
mov edx, dword [esp + 8]
add esi, 1
mov al, ah
adc ebx, 0
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0xc]
shl ecx, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], ebx
or ecx, edi
mov dword [edx + 0x10], ecx
mov ah, al
add ah, 3
cmp ah, 0x20
ja 0x4a25c0
mov ebx, dword [esi + 0x10]
mov ecx, eax
xor edi, edi
mov al, ah
shr ebx, cl
mov ecx, 4
and bl, 7
jmp 0x4a2652
mov esi, dword [esp + 0xc]
add al, 0xfb
mov ecx, 0x2502
mov edi, 0x6843e8
xor ebx, ebx
cmp cl, 4
mov byte [esi + 0x1c], al
mov dword [esp + 0x10], ecx
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 4
mov dword [esp + 0x14], edi
jne 0x4a26b7
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov byte [esp + ecx + 0xa0], bl
mov ecx, dword [esp + 0x30]
test edx, edx
jne 0x4a2590
lea ecx, [esp + 0x10]
lea edx, [esp + 0xa0]
push 0
push 1
push 1
push 0x13
call fcn.004a4110
add esp, 0x10
cmp dword [esp + 0x10], 1
mov edi, dword [esp + 0x18]
jne 0x4a26f5
mov ebx, dword [esp + 0x14]
jmp 0x4a26d6
movzx eax, byte [esp + 0x17]
movzx edi, word [esp + 0x15]
mov ebx, dword [esp + 0x11]
shl eax, 0x10
or edi, eax
movzx eax, cl
shld edi, ebx, 8
shl ebx, 8
or ebx, eax
mov esi, ebx
shrd esi, edi, 8
shr edi, 8
shld edi, esi, 8
shl esi, 8
movzx eax, bl
or eax, esi
mov edx, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [0x6f1130]
test eax, eax
je 0x4a2720
mov edi, dword [esp + 0x38]
jmp 0x4a2736
call sub.KERNEL32.dll_GetProcessHeap
mov edi, dword [esp + 0x38]
test eax, eax
je 0x4a3892
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4a3892
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 0
nop word [eax + eax]
mov al, byte [esi + 0x14]
mov bl, byte [esi + 0x1c]
mov byte [esp + 8], al
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov byte [esp], al
nop
mov byte [esp + 0x2c], bl
mov al, byte [esp]
add al, bl
cmp al, 0x20
jbe 0x4a2800
nop dword [eax]
cmp byte [esp + 8], 4
jne 0x4a2830
mov bh, bl
mov eax, esi
mov edx, dword [esp + 4]
mov ecx, 0
add bh, 0xf8
mov byte [esi + 0x1c], bh
mov edi, dword [esi + 0x10]
shr edi, 8
mov dword [esi + 0x10], edi
mov esi, dword [esi]
mov eax, dword [eax + 4]
cmp edx, esi
sbb ecx, eax
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3814
je 0x4a2850
mov edx, dword [esp + 0x30]
add esi, 1
mov bl, bh
adc eax, 0
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0xc]
shl ecx, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], eax
or ecx, edi
mov dword [edx + 0x10], ecx
movzx eax, byte [esp]
add al, bl
cmp al, 0x20
ja 0x4a2790
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov edi, 0xffffffff
shr eax, cl
mov cl, byte [esp]
and cl, 0xf
shl edi, cl
not edi
and edi, eax
movzx ecx, di
cmp dword [esp + 0x3c], ecx
ja 0x4a2879
jmp 0x4a2dc2
mov bl, byte [esp + 0x2c]
xor edi, edi
movzx ecx, di
cmp dword [esp + 0x3c], ecx
ja 0x4a2879
jmp 0x4a2dc2
mov esi, dword [esp + 0xc]
add bl, 0xf8
xor edi, edi
mov byte [esp + 8], 2
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
movzx ecx, di
cmp dword [esp + 0x3c], ecx
jbe 0x4a2dc2
mov eax, dword [esp + 0x34]
movzx ecx, word [eax + ecx*2]
mov bh, cl
and bh, 0x1f
cmp bh, byte [esp]
jbe 0x4a295a
mov eax, dword [esp + 0x44]
mov byte [esp], bh
cmp bh, ah
jbe 0x4a2780
lea edi, [esp + 0x68]
mov word [esp], cx
lea eax, [esp + 0x80]
lea edx, [esp + 0x10]
mov dword [esp + 0x80], 0x6203f4
mov dword [esp + 0x10], 0x6d4414
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x84], 0x5c1350
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
call fcn.0040a660
mov ecx, 0x15
mov edx, edi
call fcn.004a3e30
cmp byte [esi + 0x14], 3
jne 0x4a2951
mov edi, dword [esi + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [edi + 4]
push dword [edi]
call dword [eax]
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4a293b
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4a292d
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov bl, byte [esi + 0x1c]
movzx ecx, word [esp]
jmp 0x4a2960
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
add bl, bh
cmp al, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov byte [esi + 0x1c], bl
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 4
jne 0x4a2d4f
movzx eax, cx
mov ecx, dword [esp + 0x58]
shr eax, 5
test ecx, ecx
je 0x4a2999
mov edx, dword [esp + 0x50]
mov dl, byte [ecx + edx - 1]
movzx esi, dl
mov edx, dword [esp + 0xc]
xor ebx, ebx
test ecx, ecx
lea ecx, [esp + 0x10]
setne bl
push esi
push ebx
push eax
call fcn.0049fd00
add esp, 0xc
cmp dword [esp + 0x10], 1
je 0x4a2d75
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x50]
push dword [esp + 0x18]
call fcn.004a3ae0
add esp, 4
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0xc]
cmp eax, edx
jb 0x4a2760
mov dword [esp + 0x58], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x50]
add edx, ecx
add ecx, eax
lea eax, [esp + 0x50]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x8c]
lea edx, [esp + 0x10]
mov dword [esp + 0x20], eax
call fcn.004a3b90
movzx eax, word [esp + 0x40]
mov ebx, dword [esp + 0x94]
cmp ebx, eax
mov dword [esp + 0x38], eax
jae 0x4a2cb2
mov al, byte [esi + 0x14]
mov bl, byte [esi + 0x1c]
mov byte [esp + 8], al
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov byte [esp], al
nop dword [eax + eax]
mov byte [esp + 0x2c], bl
mov al, byte [esp]
add al, bl
cmp al, 0x20
jbe 0x4a2ad8
nop dword [eax]
cmp byte [esp + 8], 4
jne 0x4a2af2
mov bh, bl
mov eax, esi
mov edx, dword [esp + 4]
mov ecx, 0
add bh, 0xf8
mov byte [esi + 0x1c], bh
mov edi, dword [esi + 0x10]
shr edi, 8
mov dword [esi + 0x10], edi
mov esi, dword [esi]
mov eax, dword [eax + 4]
cmp edx, esi
sbb ecx, eax
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3814
je 0x4a2afa
mov edx, dword [esp + 0x30]
add esi, 1
mov bl, bh
adc eax, 0
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0xc]
shl ecx, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], eax
or ecx, edi
mov dword [edx + 0x10], ecx
movzx eax, byte [esp]
add al, bl
cmp al, 0x20
ja 0x4a2a70
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov edi, 0xffffffff
shr eax, cl
mov cl, byte [esp]
and cl, 0xf
shl edi, cl
not edi
and edi, eax
jmp 0x4a2b16
mov bl, byte [esp + 0x2c]
xor edi, edi
jmp 0x4a2b16
mov esi, dword [esp + 0xc]
add bl, 0xf8
xor edi, edi
mov byte [esp + 8], 2
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
movzx ecx, di
cmp dword [esp + 0x3c], ecx
jbe 0x4a2dc2
mov eax, dword [esp + 0x34]
movzx ecx, word [eax + ecx*2]
mov bh, cl
and bh, 0x1f
cmp bh, byte [esp]
jbe 0x4a2c04
mov eax, dword [esp + 0x44]
mov byte [esp], bh
cmp bh, ah
jbe 0x4a2a60
lea edi, [esp + 0x68]
mov word [esp], cx
lea eax, [esp + 0x80]
lea edx, [esp + 0x10]
mov dword [esp + 0x80], 0x6203f4
mov dword [esp + 0x10], 0x6d4414
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x84], 0x5c1350
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
call fcn.0040a660
mov ecx, 0x15
mov edx, edi
call fcn.004a3e30
cmp byte [esi + 0x14], 3
jne 0x4a2bfb
mov edi, dword [esi + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [edi + 4]
push dword [edi]
call dword [eax]
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4a2be5
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4a2bd7
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov bl, byte [esi + 0x1c]
movzx ecx, word [esp]
jmp 0x4a2c0a
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
add bl, bh
cmp al, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov byte [esi + 0x1c], bl
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 4
jne 0x4a2e48
movzx eax, cx
mov ecx, dword [esp + 0x94]
shr eax, 5
test ecx, ecx
je 0x4a2c4d
mov edx, dword [esp + 0x8c]
mov cl, byte [ecx + edx - 1]
mov dl, 1
jmp 0x4a2c62
mov edx, dword [esp + 0x58]
test edx, edx
je 0x4a2c5d
mov ecx, dword [esp + 0x50]
mov cl, byte [edx + ecx - 1]
test edx, edx
setne dl
movzx edi, dl
mov edx, dword [esp + 0xc]
movzx esi, cl
lea ecx, [esp + 0x10]
push esi
push edi
push eax
call fcn.0049fd00
add esp, 0xc
cmp dword [esp + 0x10], 1
je 0x4a2e6b
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x8c]
push dword [esp + 0x18]
call fcn.004a3ae0
add esp, 4
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0xc]
cmp ebx, dword [esp + 0x38]
jb 0x4a2a39
cmp ebx, dword [esp + 0x38]
jbe 0x4a2d82
lea eax, [esp + 0xb8]
lea edx, [esp + 0x5e]
lea ecx, [esp + 0x68]
mov dword [esp + 0x10], 0x61ff08
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0x45a1b0
mov dword [esp + 0x70], edx
lea ecx, [esp + 0x80]
lea edx, [esp + 0x10]
mov dword [esp + 0x74], 0x4647c0
mov dword [esp + 0x24], 2
call fcn.0040a660
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
lea edx, [esp + 0x10]
mov ecx, 0x15
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm0
call fcn.004a3e30
mov ebx, eax
mov edi, edx
jmp 0x4a2e73
mov ecx, eax
movzx eax, byte [esp + 0x17]
movzx edi, word [esp + 0x15]
mov ebx, dword [esp + 0x11]
shl eax, 0x10
or edi, eax
movzx eax, cl
shld edi, ebx, 8
shl ebx, 8
or ebx, eax
jmp 0x4a2e91
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jmp 0x4a2e91
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
sub esp, 0x10
lea ecx, [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
call fcn.004a4110
add esp, 0x10
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], 1
mov edi, dword [esp + 0x18]
jne 0x4a2dd5
mov ebx, eax
jmp 0x4a2e73
mov edx, dword [esp + 0x3c]
push 0x6203c8
call fcn.0045a150
add esp, 4
ud2
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x8c]
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov edx, edi
push 0
mov dword [esp + 0x48], eax
push eax
push 1
push ebx
call fcn.004a4110
add esp, 0x10
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], 1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ecx
jne 0x4a2ecd
test dword [esp + 0x7c], 0x7fffffff
je 0x4a2e3e
push dword [esp + 0x3c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x60]
jmp 0x4a2e73
mov ecx, eax
movzx eax, byte [esp + 0x17]
movzx edi, word [esp + 0x15]
mov ebx, dword [esp + 0x11]
shl eax, 0x10
or edi, eax
movzx eax, cl
shld edi, ebx, 8
shl ebx, 8
or ebx, eax
jmp 0x4a2e73
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x90], 0
je 0x4a2e91
push dword [esp + 0x8c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x54], 0
je 0x4a2ea9
push dword [esp + 0x50]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x64], 0x7fffffff
je 0x4a26d6
push dword [esp + 0x34]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4a26d6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x90], 0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
je 0x4a2efb
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x54], 0
je 0x4a2f13
push dword [esp + 0x50]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x64], 0x7fffffff
je 0x4a2f2e
push dword [esp + 0x34]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea eax, [esi + 0x20]
mov dword [esp + 0x64], eax
mov al, byte [esi + 0x14]
mov dword [esp + 8], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov al, byte [esi + 0x1c]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x44]
mov byte [esp], al
mov al, byte [esp + 0x2c]
mov cl, byte [esp]
add cl, al
cmp cl, 0x20
jbe 0x4a2fdd
nop word cs:[eax + eax]
cmp byte [esp + 8], 4
jne 0x4a2fff
mov ah, al
mov ecx, esi
mov edx, dword [esp + 4]
mov edi, 0
add ah, 0xf8
mov byte [esi + 0x1c], ah
mov ebx, dword [esi + 0x10]
shr ebx, 8
mov dword [esi + 0x10], ebx
mov esi, dword [esi]
mov ecx, dword [ecx + 4]
cmp edx, esi
sbb edi, ecx
mov edi, esi
cmovb edi, edx
cmp edx, edi
jb 0x4a3851
je 0x4a3003
mov edx, dword [esp + 0x30]
add esi, 1
mov al, ah
adc ecx, 0
movzx edi, byte [edx + edi]
mov edx, dword [esp + 0xc]
shl edi, 0x18
mov dword [edx], esi
mov esi, edx
mov dword [edx + 4], ecx
or edi, ebx
mov dword [edx + 0x10], edi
movzx ecx, byte [esp]
add cl, al
cmp cl, 0x20
ja 0x4a2f70
mov ecx, dword [esp + 0xc]
mov edi, 0xffffffff
mov esi, dword [ecx + 0x10]
mov ecx, eax
shr esi, cl
mov cl, byte [esp]
and cl, 0xf
shl edi, cl
not edi
and edi, esi
mov esi, dword [esp + 0xc]
jmp 0x4a301f
xor edi, edi
jmp 0x4a3023
mov esi, dword [esp + 0xc]
mov cl, 2
add al, 0xf8
xor edi, edi
mov dword [esp + 8], ecx
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
mov byte [esp + 0x2c], al
movzx eax, di
cmp dword [esp + 0x38], eax
jbe 0x4a37ff
mov ecx, dword [esp + 0x3c]
movzx ecx, word [ecx + eax*2]
mov ebx, ecx
and bl, 0x1f
cmp bl, byte [esp]
jbe 0x4a310f
mov eax, dword [esp + 0x44]
mov byte [esp], bl
cmp bl, ah
jbe 0x4a2f58
lea edi, [esp + 0xa0]
mov dword [esp], ecx
lea eax, [esp + 0x68]
lea edx, [esp + 0x10]
mov dword [esp + 0x68], 0x6203f4
mov dword [esp + 0x10], 0x6d4414
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x6c], 0x5c1350
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
call fcn.0040a660
mov ecx, 0x15
mov edx, edi
call fcn.004a3e30
cmp byte [esi + 0x14], 3
mov dword [esp + 8], eax
jne 0x4a30fd
mov edi, dword [esi + 0x18]
mov dword [esp + 4], edx
mov eax, dword [edi + 4]
push dword [edi]
call dword [eax]
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4a30eb
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4a30dd
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov dword [esi + 0x18], edx
mov ecx, dword [esp]
mov dword [esi + 0x14], eax
mov al, byte [esi + 0x1c]
jmp 0x4a3113
mov al, byte [esp + 0x2c]
mov edx, ecx
add al, bl
shr edx, 5
cmp ecx, 0x2000
mov byte [esi + 0x1c], al
mov word [esp + 0x80], dx
jae 0x4a313b
movzx eax, dx
xor ebx, ebx
mov dword [esp + 0x34], eax
jmp 0x4a3227
mov byte [esp + 0x2c], al
movzx eax, dx
mov bl, 2
lea ecx, [eax - 0x11e]
cmp cx, 2
jae 0x4a3220
lea edi, [esp + 0x10]
lea ecx, [esp + 0x68]
lea eax, [esp + 0x80]
mov dword [esp + 0x10], 0x6203b8
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xa0]
mov edx, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0x4647c0
mov dword [esp + 0x24], 1
call fcn.0040a660
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
mov ecx, 0x15
mov edx, edi
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm0
call fcn.004a3e30
cmp byte [esi + 0x14], 3
jne 0x4a3218
mov edi, dword [esi + 0x18]
mov dword [esp], eax
mov dword [esp + 8], edx
mov eax, dword [edi + 4]
push dword [edi]
call dword [eax]
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4a3203
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4a31f5
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
mov edx, dword [esp + 8]
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], edx
jmp 0x4a3227
cmp eax, 0x100
jne 0x4a3293
movzx edx, bl
xor ecx, ecx
xor eax, eax
mov ebx, dword [esi + 0x14]
mov edi, esi
mov esi, dword [esi + 0x18]
mov dword [edi + 0x14], 4
mov dword [edi + 0x18], 0
cmp bl, 4
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
jne 0x4a375e
mov esi, edx
movzx edi, cx
xor esi, 2
or edi, esi
je 0x4a3773
mov esi, edx
mov edx, dword [esp + 0x34]
or eax, ecx
mov ecx, dword [esp + 0x64]
shl edx, 8
or edx, esi
push eax
call fcn.004a38d0
add esp, 4
mov esi, dword [esp + 0xc]
mov ebx, eax
cmp bl, 4
je 0x4a2f35
jmp 0x4a379f
lea eax, [edx - 0x101]
cmp eax, 0x1d
jae 0x4a3866
movzx eax, byte [edx*4 + 0x61ff06]
mov cl, byte [esp + 0x2c]
mov dword [esp + 0x34], eax
add al, cl
cmp al, 0x20
jbe 0x4a335a
cmp byte [esp + 8], 4
jne 0x4a337b
mov dword [esp + 0x78], edx
mov edx, dword [esi + 8]
mov edi, dword [esi]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x4c], edx
mov dword [esp], edi
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov dword [esp + 0x48], eax
add cl, 0xf8
mov ebx, edx
mov edx, dword [esp + 0x48]
mov eax, 0
mov dword [esp + 4], edi
mov byte [esp + 0x30], cl
mov byte [esi + 0x1c], cl
mov ecx, dword [esp]
shr ebx, 8
mov dword [esi + 0x10], ebx
cmp edx, ecx
sbb eax, edi
mov eax, ecx
cmovb eax, edx
cmp edx, eax
jb 0x4a38a0
je 0x4a369c
mov edx, dword [esp + 0x4c]
add ecx, 1
mov edi, dword [esp + 4]
mov dword [esp], ecx
movzx edx, byte [edx + eax]
mov dword [esi], ecx
movzx ecx, byte [esp + 0x30]
mov eax, dword [esp + 0x34]
adc edi, 0
mov dword [esi + 4], edi
shl edx, 0x18
add al, cl
mov byte [esp + 0x2c], cl
or edx, ebx
cmp al, 0x20
mov dword [esi + 0x10], edx
ja 0x4a32e4
mov eax, dword [esp + 0x34]
add al, cl
jmp 0x4a3361
mov dword [esp + 0x78], edx
mov edx, dword [esi + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x34]
mov edi, 0xffffffff
and cl, 0xf
shl edi, cl
not edi
and edi, edx
mov edx, dword [esp + 0x78]
jmp 0x4a337d
xor edi, edi
movzx ecx, word [edx*4 + 0x61ff04]
movzx edx, di
mov byte [esi + 0x1c], al
add edx, ecx
mov ecx, eax
movzx eax, dx
shl eax, 8
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x9c]
mov byte [esp], al
mov eax, ecx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x30], ecx
mov dword [esp + 4], edx
mov cl, byte [esp]
add cl, al
cmp cl, 0x20
jbe 0x4a3429
cmp byte [esp + 8], 4
jne 0x4a34a5
add al, 0xf8
mov ecx, esi
mov edx, dword [esp + 4]
mov byte [esi + 0x1c], al
mov ebx, dword [esi + 0x10]
shr ebx, 8
mov dword [esi + 0x10], ebx
mov esi, dword [esi]
mov edi, dword [ecx + 4]
mov ecx, 0
cmp edx, esi
sbb ecx, edi
mov ecx, esi
cmovb ecx, edx
cmp edx, ecx
jb 0x4a3814
je 0x4a3443
mov edx, dword [esp + 0x30]
add esi, 1
adc edi, 0
movzx ecx, byte [edx + ecx]
mov edx, eax
mov eax, dword [esp + 0xc]
shl ecx, 0x18
mov dword [eax], esi
mov esi, eax
mov eax, edx
or ecx, ebx
mov dword [esi + 4], edi
mov dword [esi + 0x10], ecx
movzx ecx, byte [esp]
add cl, al
cmp cl, 0x20
ja 0x4a33bd
mov edx, dword [esi + 0x10]
mov ecx, eax
mov eax, 0xffffffff
shr edx, cl
mov cl, byte [esp]
and cl, 0xf
shl eax, cl
not eax
and eax, edx
jmp 0x4a34a7
cmp byte [esp + 8], 3
mov esi, dword [esp + 0xc]
jne 0x4a3491
mov esi, dword [esi + 0x18]
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x4a347d
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x4a346f
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0xc]
push dword [esi + 0x18]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov al, 2
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
mov dword [esp + 8], eax
xor eax, eax
movzx ecx, ax
cmp dword [esp + 0x98], ecx
jbe 0x4a383b
mov eax, dword [esp + 0x40]
movzx edx, word [eax + ecx*2]
mov ecx, edx
and cl, 0x1f
cmp cl, byte [esp]
jbe 0x4a359e
mov eax, dword [esp + 0x9c]
cmp cl, ah
ja 0x4a34e3
mov al, byte [esi + 0x1c]
mov byte [esp], cl
jmp 0x4a33a5
lea edi, [esp + 0xa0]
mov dword [esp + 0x48], edx
mov byte [esp], cl
lea eax, [esp + 0x68]
lea edx, [esp + 0x10]
mov dword [esp + 0x68], 0x6203f4
mov dword [esp + 0x10], 0x6d4414
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x6c], 0x5c1350
mov ecx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
call fcn.0040a660
mov ecx, 0x15
mov edx, edi
call fcn.004a3e30
cmp byte [esi + 0x14], 3
mov edi, edx
mov dword [esp + 8], eax
jne 0x4a358d
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx + 4]
push dword [ebx]
call dword [eax]
add esp, 4
mov ecx, dword [ebx + 4]
cmp dword [ecx + 4], 0
je 0x4a357f
mov eax, dword [ebx]
cmp dword [ecx + 8], 9
jb 0x4a356d
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0xc]
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 8]
mov cl, byte [esp]
mov edx, dword [esp + 0x48]
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], eax
mov al, byte [esi + 0x1c]
mov ebx, edx
mov dword [esp + 0x48], edx
shr ebx, 5
add cl, al
cmp edx, 0x3bf
mov byte [esi + 0x1c], cl
ja 0x4a387c
movzx edx, byte [ebx*4 + 0x62022e]
mov dword [esp + 4], edx
add dl, cl
cmp dl, 0x20
jbe 0x4a3679
cmp byte [esp + 8], 4
jne 0x4a3695
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x4c], ebx
mov edi, dword [esi + 0x10]
mov ebx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x48]
and cl, 0x1f
add al, cl
add al, 0xf8
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x30]
mov byte [esp], cl
mov byte [esi + 0x1c], cl
mov ecx, 0
shr eax, 8
mov dword [esi + 0x10], eax
cmp edi, ebx
sbb ecx, edx
mov ecx, ebx
cmovb ecx, edi
cmp edi, ecx
jb 0x4a38b5
je 0x4a36c4
mov edi, dword [esp + 0x2c]
add ebx, 1
adc edx, 0
movzx edi, byte [edi + ecx]
movzx ecx, byte [esp]
mov dword [esi], ebx
mov dword [esi + 4], edx
shl edi, 0x18
or edi, eax
mov eax, dword [esp + 4]
add al, cl
cmp al, 0x20
mov dword [esi + 0x10], edi
jbe 0x4a374d
add cl, 0xf8
cmp byte [esp + 8], 4
je 0x4a3604
mov edx, dword [esp + 4]
xor eax, eax
add dl, cl
add dl, 8
jmp 0x4a372d
mov edi, dword [esi + 0x10]
shr edi, cl
mov ecx, dword [esp + 4]
mov eax, 0xffffffff
and cl, 0xf
shl eax, cl
not eax
and eax, edi
jmp 0x4a3731
xor eax, eax
jmp 0x4a3731
mov ecx, dword [esp + 0x34]
mov al, 2
xor edi, edi
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
mov dword [esp + 8], eax
add cl, byte [esp + 0x2c]
add cl, 0xf8
mov eax, ecx
jmp 0x4a3375
cmp byte [esp + 8], 3
jne 0x4a3714
mov esi, dword [esi + 0x18]
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x4a36fa
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x4a36ec
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0xc]
push dword [esi + 0x18]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov al, byte [esi + 0x1c]
mov byte [esp], al
mov ecx, dword [esp + 4]
mov dword [esi + 0x14], 0x2502
mov dword [esi + 0x18], 0x6843e8
xor eax, eax
add cl, byte [esp]
mov edx, ecx
mov ebx, dword [esp + 0x4c]
movzx ecx, word [ebx*4 + 0x62022c]
movzx eax, ax
mov byte [esi + 0x1c], dl
mov edx, 1
add eax, ecx
xor ecx, ecx
jmp 0x4a322e
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x4c]
mov edx, eax
add dl, cl
jmp 0x4a367c
movzx eax, byte [esp + 0x17]
movzx edi, word [esp + 0x15]
mov esi, dword [esp + 0x11]
shl eax, 0x10
or edi, eax
jmp 0x4a37aa
test dword [esp + 0x7c], 0x7fffffff
je 0x4a378e
push dword [esp + 0x3c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x60], 0x7fffffff
mov bl, 4
jne 0x4a37e9
jmp 0x4a26df
mov edi, edx
mov esi, ebx
shrd esi, edx, 8
shr edi, 8
test dword [esp + 0x7c], 0x7fffffff
je 0x4a37c5
push dword [esp + 0x3c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x60], 0x7fffffff
je 0x4a26df
push dword [esp + 0x40]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4a26df
push dword [esp + 0x40]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4a26df
mov edx, dword [esp + 0x38]
mov ecx, eax
push 0x6203c8
call fcn.0045a150
add esp, 4
ud2
mov edx, dword [esp + 4]
push 0x620458
call fcn.0045a820
add esp, 4
ud2
mov ecx, eax
mov edx, dword [esp]
push 0x620458
call fcn.0045a820
add esp, 4
ud2
mov edx, dword [esp + 0x98]
push 0x6203c8
call fcn.0045a150
add esp, 4
ud2
mov edx, dword [esp + 4]
mov ecx, edi
push 0x620458
call fcn.0045a820
add esp, 4
ud2
mov ecx, eax
mov edx, 0x1d
push 0x62037c
call fcn.0045a150
add esp, 4
ud2
mov ecx, ebx
mov edx, 0x1e
push 0x6202f8
call fcn.0045a150
add esp, 4
ud2
mov ecx, edi
mov edx, 1
call fcn.0040a640
ud2
mov edx, dword [esp + 0x48]
mov ecx, eax
push 0x620458
call fcn.0045a820
add esp, 4
ud2
mov edx, dword [esp + 0x30]
push 0x620458
call fcn.0045a820
add esp, 4
ud2