Function at 0x496756
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4178
call fcn.004e3eb0
mov eax, dword [0x513010]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, ecx
xor edx, edx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x20]
movzx ecx, word [eax + 0xa3fa]
mov dword [ebp - 0x414c], ecx
cmp dword [ebp + 0xc], edx
jne 0x4967b3
cmp byte [ebx + 0x7f], dl
je 0x497ab5
push ecx
push edx
lea edx, [ebx + 0x28]
mov ecx, edi
call fcn.0049dde3
pop ecx
pop ecx
test al, al
je 0x497aa9
mov ecx, dword [ebp - 0x414c]
xor edx, edx
mov eax, dword [edi + 0x1a5c]
cmp eax, 2
jne 0x4979f8
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx + 0x2008]
mov eax, edx
mov esi, dword [ecx + 0x200c]
or eax, esi
je 0x49682e
cmp edx, dword [edi + 0x6ee0]
jne 0x49682e
cmp esi, dword [edi + 0x6ee4]
jne 0x49682e
lea eax, [ecx + 0x1008]
xor ecx, ecx
cmp word [eax], cx
je 0x497ab5
lea ecx, [edi + 0x32]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x496821
test dx, dx
je 0x49681d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x496821
add eax, 4
add ecx, 4
test dx, dx
jne 0x4967fb
xor eax, eax
jmp 0x496826
sbb eax, eax
or eax, 1
test eax, eax
je 0x497ab5
xor edx, edx
mov byte [ebx + 0x1117], dl
cmp dword [edi + 0x3524], edx
jg 0x496854
jl 0x496848
cmp dword [edi + 0x3520], edx
jae 0x496854
mov dword [edi + 0x3520], edx
mov dword [edi + 0x3524], edx
cmp dword [edi + 0x352c], edx
jg 0x496872
jl 0x496866
cmp dword [edi + 0x3528], edx
jae 0x496872
mov dword [edi + 0x3528], edx
mov dword [edi + 0x352c], edx
mov ecx, dword [ebx + 0x20]
cmp dword [ecx + 0x7068], edx
jne 0x496897
mov eax, dword [ebx + 0x10c]
cmp eax, dword [ecx + 0xc430]
jb 0x496897
cmp byte [ebx + 0x111], dl
jne 0x497ab5
push ecx
lea eax, [ebp - 0x40f4]
mov byte [ebp - 0x413f], dl
push eax
push ecx
push ecx
lea eax, [ebp - 0x413f]
push eax
lea eax, [edi + 0x24d0]
push eax
call fcn.0049e8f0
mov ecx, dword [ebx + 0x20]
mov esi, eax
test esi, esi
setne al
cmp dword [ecx + 0x7064], 2
mov dword [ebp - 0x4150], eax
mov byte [ebp - 0x415c], al
jne 0x496921
push 0x800
add ecx, 0x4028
lea edx, [ebp - 0x40f4]
call fcn.00498a2a
pop ecx
mov ecx, dword [ebx + 0x20]
add ecx, 0x4028
call fcn.00498e0f
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [ebx + 0x20]
add ecx, 0x4028
call fcn.00499058
test al, al
je 0x496921
mov eax, dword [ebx + 0x20]
xor ecx, ecx
mov word [eax + 0x4028], cx
test esi, esi
je 0x496936
cmp byte [ebp - 0x413f], 0
jne 0x496936
xor eax, eax
mov byte [ebx + 0x111], al
mov ecx, edi
call fcn.0049d824
push 0x800
lea ecx, [edi + 0x24f8]
lea edx, [ebp - 0x1014]
call fcn.00498e82
cmp byte [edi + 0x35bb], 0
pop ecx
je 0x4969db
mov eax, dword [ebx + 0x20]
mov ecx, dword [eax + 0x83b4]
cmp ecx, 1
je 0x496a02
cmp byte [ebp - 0x413f], 0
jne 0x496a02
mov eax, dword [ebp - 0x415c]
xor edx, edx
movzx eax, al
test ecx, ecx
push 0x3b
cmovne edx, eax
xor eax, eax
mov esi, eax
mov dword [ebp - 0x4150], edx
lea eax, [ebp - 0x1014]
push eax
call fcn.004b8ba7
pop ecx
pop ecx
test eax, eax
je 0x4969b4
lea ecx, [eax + 2]
call fcn.00496269
mov esi, eax
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + 0x83b4]
dec eax
cmp eax, esi
jne 0x4969d1
mov dl, 1
lea ecx, [ebp - 0x1014]
call fcn.00499585
jmp 0x496a02
xor eax, eax
mov byte [ebp - 0x4150], al
jmp 0x496a02
cmp byte [edi + 0x35b9], 0
jne 0x496a02
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp - 0x4150]
movzx ecx, dl
xor edx, edx
cmp dword [eax + 0x83b4], 1
cmova ecx, edx
mov byte [ebp - 0x4150], cl
mov al, byte [edi + 0x3561]
mov byte [ebx + 0x7f], al
xor eax, eax
mov byte [ebx + 0x80], al
mov ecx, dword [edi + 0x6ee8]
sub ecx, dword [edi + 0x3520]
mov edx, dword [edi]
push eax
mov eax, dword [edi + 0x6eec]
sbb eax, dword [edi + 0x3524]
push eax
push ecx
mov ecx, edi
call dword [edx + 0x10]
mov ecx, dword [ebp - 0x4150]
xor edx, edx
mov byte [ebp - 0x4144], dl
mov byte [ebp - 0x413e], dl
cmp byte [ebx + 0x110], dl
je 0x496ac1
test cl, cl
jne 0x496a5d
cmp byte [edi + 0x6ef4], dl
je 0x496ac1
cmp byte [edi + 0x3560], dl
je 0x496ac1
test cl, cl
je 0x496aad
push 0x46
lea ecx, [ebp - 0x20b4]
call fcn.004964f8
lea eax, [ebp - 0x1014]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x20b4]
call fcn.00498839
mov eax, dword [ebx + 0x20]
add esp, 4
mov dword [eax + 0xa3d8], 0xc
inc dword [0x515c48]
xor edx, edx
mov dword [0x515c44], 6
mov byte [ebp - 0x4150], dl
mov byte [ebx + 0x110], dl
mov byte [ebp - 0x413d], dl
jmp 0x496ad5
mov byte [ebx + 0x110], dl
mov byte [ebp - 0x413d], dl
test cl, cl
jne 0x496c09
cmp dword [ebx + 4], 0
mov dword [ebp - 0x4154], edx
jbe 0x496b5e
mov ecx, dword [ebx]
push 0x10
mov dword [ebp - 0x415c], ecx
mov dword [ebp - 0x4160], ecx
pop edx
mov esi, dword [ecx]
lea ecx, [ebp - 0x1014]
mov ax, word [ecx]
cmp ax, word [esi]
mov eax, dword [ebp - 0x4154]
jne 0x496b39
cmp word [ecx], 0
je 0x496b35
mov ax, word [ecx + 2]
cmp ax, word [esi + 2]
mov word [ebp - 0x4156], ax
mov eax, dword [ebp - 0x4154]
jne 0x496b39
add ecx, 4
add esi, 4
cmp word [ebp - 0x4156], 0
jne 0x496afa
xor ecx, ecx
jmp 0x496b3e
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x496b99
mov ecx, dword [ebp - 0x4160]
inc eax
add ecx, edx
mov dword [ebp - 0x4154], eax
mov dword [ebp - 0x4160], ecx
cmp eax, dword [ebx + 4]
jb 0x496af2
xor edx, edx
mov cl, byte [ebp - 0x413d]
cmp byte [edi + 0x3563], 0
je 0x496c10
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x6029], 0
je 0x496c10
cmp byte [edi + 0x6ef4], 0
jne 0x497ab5
mov byte [ebp - 0x4150], dl
jmp 0x496c19
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x72f1], 0
jne 0x496c00
xor ecx, ecx
lea esi, [ebx + 0x1118]
cmp word [eax + 0x10], cx
mov ecx, 0x2016
push 0x800
cmove edx, ecx
mov ecx, esi
add edx, eax
call fcn.00498a2a
pop ecx
mov ecx, esi
call fcn.004990d3
push 0x800
mov edx, str.__tmp_reference_source_
call fcn.00498a58
pop ecx
mov ecx, esi
call fcn.004a0e10
push esi
call fcn.004e578a
mov edx, dword [ebp - 0x415c]
pop ecx
mov ecx, dword [ebp - 0x4154]
shl ecx, 4
mov dword [ecx + edx + 4], eax
mov cl, 1
xor edx, edx
jmp 0x496b64
mov cl, dl
jmp 0x496b64
cmp byte [ebp - 0x4150], 0
jne 0x496c31
test cl, cl
jne 0x496c31
mov al, byte [edi + 0x6ef4]
mov byte [ebp - 0x413e], al
test al, al
je 0x4979cf
lea esi, [ebx + 0x1118]
test cl, cl
jne 0x496c4c
push ecx
push esi
lea eax, [ebp - 0x1014]
mov ecx, ebx
push eax
push edi
call fcn.00497e22
xor eax, eax
cmp byte [ebp - 0x413e], al
jne 0x496c6a
cmp word [esi], ax
je 0x496c6a
mov byte [ebp - 0x4144], 1
cmp byte [edi + 0x3560], al
je 0x496c70
mov byte [ebp - 0x4144], al
mov eax, dword [ebx + 0x20]
push 0x45
pop ecx
push 0x58
cmp byte [eax + 0x705f], 0
pop edx
mov dword [ebp - 0x4174], ecx
mov dword [ebp - 0x4170], edx
jne 0x496c9b
cmp byte [eax + 0x7060], 0
je 0x496d23
mov eax, dword [ebp - 0x414c]
cmp ax, cx
je 0x496cab
cmp ax, dx
jne 0x496d23
lea ecx, [ebp - 0x413c]
call fcn.004966b5
push ecx
mov edx, ecx
mov ecx, esi
call fcn.004a1121
pop ecx
test al, al
je 0x496d06
lea eax, [edi + 0x3508]
push eax
lea ecx, [ebp - 0x312c]
call fcn.0049632e
test al, al
je 0x496d23
cmp byte [ebp - 0x3130], 0
je 0x496cfc
mov eax, dword [ebp - 0x3128]
cmp eax, dword [ebx + 0x1c]
ja 0x496d23
jb 0x496cfc
mov eax, dword [ebp - 0x312c]
cmp eax, dword [ebx + 0x18]
jae 0x496d23
xor eax, eax
mov byte [ebp - 0x4144], al
jmp 0x496d23
mov eax, dword [ebx + 0x20]
xor edx, edx
mov ecx, dword [ebp - 0x4144]
movzx ecx, cl
cmp byte [eax + 0x705f], dl
cmovne ecx, edx
mov dword [ebp - 0x4144], ecx
lea eax, [ebp - 0x1014]
push eax
push edi
call fcn.0049870d
test al, al
jne 0x496d63
push 2
mov ecx, 0x515c44
call fcn.0049e598
mov eax, dword [ebx + 0x20]
mov ecx, edi
mov dword [eax + 0xa3d8], 0xe
call fcn.0049a822
cmp byte [edi + 0x6ef4], 0
sete al
jmp 0x497a44
xor eax, eax
cmp byte [edi + 0x3563], al
je 0x496fde
cmp dword [edi + 0x6ef0], 3
mov esi, eax
mov dword [ebp - fcn.0041b251], 0x5068ac
mov dword [ebp - 0x2098], esi
jne 0x496dc8
cmp byte [edi + 0x3589], al
je 0x496dc8
cmp byte [edi + 0x6f04], al
jne 0x496dc8
lea eax, [edi + 0x358a]
push eax
push dword [edi + 0x35b4]
lea eax, [edi + 0x3579]
push eax
lea eax, [edi + 0x3569]
push eax
lea ecx, [ebp - 0x209c]
call fcn.004963fb
mov esi, dword [ebp - 0x2098]
mov ecx, ebx
call fcn.004980ab
mov ecx, dword [ebx + 0x20]
test al, al
jne 0x496e01
mov dword [ecx + 0xa3d8], 0x16
test esi, esi
je 0x497ab5
mov ecx, esi
call fcn.004964a8
push 0x930
push esi
call fcn.004b788c
pop ecx
pop ecx
jmp 0x497ab5
lea eax, [ecx + 0xc5e8]
push eax
lea ecx, [ebp - 0x416c]
call fcn.00497ad4
lea eax, [ebp - 0x416c]
mov ecx, ebx
push eax
push edi
call fcn.0049820a
xor ecx, ecx
lea eax, [edi + 0x3569]
cmp byte [edi + 0x3568], cl
lea esi, [edi + 0x3593]
lea edx, [edi + 0x3579]
cmovne ecx, eax
lea eax, [ebp - 0x10]
push eax
push esi
push dword [edi + 0x35b4]
lea eax, [ebp - 0x416c]
push edx
push ecx
mov ecx, dword [ebx + 0x74]
push eax
push dword [edi + 0x3564]
xor eax, eax
push eax
call fcn.004ab6d3
mov byte [ebx + 0xfd], al
cmp byte [edi + 0x3589], 0
je 0x496f2e
cmp byte [edi + 0x6f04], 0
jne 0x496f2e
mov eax, dword [edi + 0x358a]
lea ecx, [ebp - 0x10]
cmp eax, dword [ecx]
jne 0x496ea0
mov eax, dword [edi + 0x358e]
cmp eax, dword [ecx + 4]
je 0x496f2e
cmp byte [ebx + 0x1116], 0
lea ecx, [ebp - 0x2064]
je 0x496ed0
push 6
call fcn.004964f8
lea eax, [ebp - 0x1014]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
add esp, 4
jmp 0x496f00
push 0x84
call fcn.004964f8
lea eax, [ebp - 0x1014]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
mov ecx, dword [ebx + 0x20]
add esp, 4
add ecx, 0xc5e8
call fcn.00495b64
mov eax, dword [ebx + 0x20]
cmp dword [eax + 0xa3d8], 0xf
je 0x496f16
mov dword [eax + 0xa3d8], 0x18
inc dword [0x515c48]
xor eax, eax
mov dword [0x515c44], 0xb
mov byte [ebp - 0x4144], al
lea ecx, [ebp - 0x416c]
call fcn.00495b64
lea ecx, [ebp - 0x416c]
call fcn.00495d83
mov esi, dword [ebp - 0x2098]
test esi, esi
je 0x496f62
mov ecx, esi
call fcn.004964a8
push 0x930
push esi
call fcn.004b788c
pop ecx
pop ecx
lea esi, [ebx + 0x1118]
mov edx, dword [ebx + 0x20]
xor eax, eax
add edx, 0x93d4
cmp word [edx], ax
je 0x496f85
push 0x800
mov ecx, esi
call fcn.00498a2a
pop ecx
mov edx, dword [ebp - 0x4144]
mov esi, dword [ebp - 0x414c]
push 0x50
pop eax
test dl, dl
je 0x496fff
cmp si, ax
je 0x496fff
mov edx, dword [ebx + 0x20]
cmp byte [edx + 0x72f1], 0
jne 0x496ff9
cmp byte [edx + 0x708b], 0
jne 0x496ff9
cmp byte [ebx + 0x2119], 0
je 0x496ff9
lea eax, [ebx + 0x211c]
add edx, 0x2016
push eax
lea ecx, [ebx + 0x1118]
call fcn.0049fce5
mov dl, al
pop ecx
mov dword [ebp - 0x4144], edx
jmp 0x496fff
mov ecx, dword [ebx + 0x74]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call fcn.004ab6d3
mov byte [ebx + 0xfd], al
jmp 0x496f68
mov edx, dword [ebp - 0x4144]
lea ecx, [ebp - 0x30f4]
call fcn.0049ffe4
mov eax, dword [edi + 0x35c8]
mov dword [ebp - 0x4154], eax
test eax, eax
je 0x497092
cmp eax, 5
je 0x497092
test dl, dl
je 0x497105
push 0x50
pop eax
cmp si, ax
je 0x497126
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x72f1], 0
jne 0x497126
xor eax, eax
lea ecx, [ebx + 0x1118]
mov byte [ebp - 0x413f], al
call fcn.004a0d47
cmp eax, 0xffffffff
je 0x497126
xor eax, eax
xor edx, edx
push eax
sub esp, 0xc
lea eax, [ebp - 0x413f]
push eax
push ecx
mov ecx, dword [ebx + 0x20]
lea eax, [ebx + 0x1118]
push eax
call fcn.004abc90
add esp, 0x1c
cmp byte [ebp - 0x413f], 0
je 0x497126
xor eax, eax
jmp 0x4970f9
cmp byte [edi + 0x35b9], 0
je 0x4970e6
test dl, dl
je 0x4970d6
push 0x50
pop eax
cmp si, ax
je 0x4970d6
cmp si, 0x49
je 0x4970d6
push 0x45
pop eax
cmp si, ax
je 0x4970d6
mov eax, dword [ebx + 0x20]
cmp dword [eax + 0x7064], 1
je 0x4970d6
inc dword [ebx + 0x104]
lea ecx, [ebp - 0x1014]
push ecx
push edi
mov ecx, ebx
call fcn.004982c3
lea ecx, [ebp - 0x30f4]
call fcn.004a004d
jmp 0x497a42
test dl, dl
je 0x497105
lea eax, [ebp - 0x30f4]
mov ecx, ebx
push eax
push edi
call fcn.00498587
mov dl, al
mov dword [ebp - 0x4144], edx
test dl, dl
jne 0x497126
cmp byte [edi + 0x6ef4], 0
je 0x49711e
mov dl, 1
mov byte [ebp - 0x413e], dl
mov byte [ebp - 0x4144], dl
jmp 0x49712c
test dl, dl
je 0x4979af
mov dl, byte [ebp - 0x413e]
mov ecx, dword [ebx + 0x20]
cmp byte [ecx + 0x72f1], 0
je 0x49714c
mov byte [ebx + 0x1117], 1
cmp byte [ecx + 0x72f1], 0
jne 0x4971ff
test dl, dl
jne 0x4971ff
xor eax, eax
push 0x50
mov byte [ebp - 0x413f], al
pop eax
cmp si, ax
je 0x4971aa
lea ecx, [ebp - 0x30f4]
call fcn.004a09bb
test al, al
je 0x4971a4
push 0x3b
lea ecx, [ebp - 0x2064]
call fcn.004964f8
lea eax, [ebx + 0x1118]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
add esp, 4
mov ecx, 0x515c44
push 5
call fcn.0049e566
mov dl, byte [ebp - 0x413e]
inc dword [ebx + 0x104]
mov ecx, dword [ebx + 0x20]
inc dword [ebx + 0x108]
push 0x49
pop eax
cmp si, ax
je 0x497221
cmp byte [ecx + 0x704f], 0
jne 0x497221
test dl, dl
jne 0x49720c
cmp byte [ecx + 0x72f1], 0
push 0x54
pop edx
movzx eax, si
push 0x45
cmovne eax, edx
pop ecx
cmp eax, ecx
je 0x4971f7
push 0x50
pop ecx
cmp eax, ecx
je 0x49720c
cmp eax, edx
je 0x49720c
push 0x58
pop ecx
cmp eax, ecx
jne 0x497221
lea eax, [ebx + 0x1118]
jmp 0x497212
mov byte [ebp - 0x413f], 1
test dl, dl
jne 0x4971b3
jmp 0x4971aa
lea eax, [ebp - 0x1014]
push eax
mov eax, 0x4f3ea8
push eax
call fcn.00414711
add esp, 8
xor eax, eax
lea esi, [edi + 0x3538]
mov dword [ebx + 0x98], eax
lea ecx, [ebx + 0xe8]
mov dword [ebx + 0x9c], eax
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], eax
mov eax, dword [ebx + 0x20]
push dword [eax + 0x93d0]
push dword [esi]
call fcn.004ab9e6
mov eax, dword [ebx + 0x20]
lea ecx, [ebx + 0xc0]
push dword [eax + 0x93d0]
push dword [esi]
call fcn.004ab9e6
mov eax, dword [edi + 0x3520]
xorps xmm0, xmm0
mov ecx, dword [edi + 0x3524]
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x48], eax
lea eax, [ebp - 0x30f4]
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x4c], ecx
or dword [ebx + 0x78], 0xffffffff
mov cl, byte [ebp - 0x413e]
mov dword [ebx + 0x60], eax
mov al, byte [ebp - 0x413f]
mov dword [ebx + 0x5c], edi
mov byte [ebx + 0x59], al
mov byte [ebx + 0x5a], cl
movlpd qword [ebp - 0x4164], xmm0
test al, al
jne 0x497390
cmp byte [edi + 0x6f04], al
jne 0x497390
mov esi, dword [edi + 0x352c]
xor eax, eax
mov edx, dword [edi + 0x3528]
cmp esi, eax
jl 0x497390
jg 0x4972ea
cmp edx, 0xf4240
jbe 0x497390
mov ecx, dword [edi + 0x3520]
mov eax, dword [edi + 0x3524]
shld eax, ecx, 0xa
shl ecx, 0xa
cmp eax, esi
jl 0x497390
jg 0x49730f
cmp ecx, edx
jbe 0x497390
cmp dword [edi + 0x10], 1
je 0x497390
xor eax, eax
cmp esi, eax
jl 0x49733e
jg 0x497325
cmp edx, 0x5f5e100
jb 0x49733e
mov ecx, edi
call fcn.004a0971
cmp edx, dword [edi + 0x3524]
jl 0x497390
jg 0x49733e
cmp eax, dword [edi + 0x3520]
jbe 0x497390
xor edx, edx
lea ecx, [ebp - 0x30f4]
push edx
push dword [edi + 0x352c]
push dword [edi + 0x3528]
call fcn.004a068d
test al, al
je 0x49737c
push dword [ebp - 0x30ec]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
xor eax, eax
lea ecx, [ebp - 0x30f4]
push eax
push eax
push eax
mov eax, dword [ebp - 0x30f4]
call dword [eax + 0x10]
mov edx, dword [edi + 0x352c]
mov eax, dword [edi + 0x3528]
mov dword [ebp - 0x415c], edx
jmp 0x4973a2
mov eax, dword [ebp - 0x4160]
mov dword [ebp - 0x415c], eax
mov eax, dword [ebp - 0x4164]
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x4160], eax
cmp byte [ecx + 0x7094], 0
sete byte [ebp - 0x30d7]
cmp byte [ebp - 0x413f], 0
jne 0x4973dd
cmp byte [ebp - 0x413e], 0
jne 0x4973dd
mov eax, dword [ebp - 0x414c]
push 0x50
pop edx
cmp ax, dx
je 0x4973dd
mov al, 1
jmp 0x4973df
xor eax, eax
cmp dword [ebp - 0x4154], 0
mov byte [ebp - 0x413d], al
mov byte [ebp - 0x4145], 1
mov byte [ebp - 0x4140], 1
je 0x4975af
mov esi, dword [edi + 0x35c8]
cmp esi, 4
je 0x4974dd
cmp esi, 5
je 0x4974dd
cmp esi, 1
je 0x49747e
cmp esi, 2
je 0x49747e
cmp esi, 3
je 0x49747e
push 0x47
lea ecx, [ebp - 0x2064]
call fcn.004964f8
lea eax, [ebp - 0x1014]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
add esp, 4
xor eax, eax
mov byte [ebp - 0x4140], al
mov al, byte [ebp - 0x413d]
xor ecx, ecx
mov byte [ebp - 0x4145], cl
test al, al
je 0x4975a2
cmp byte [ebp - 0x4140], 0
je 0x4975a2
mov al, 1
jmp 0x4975a4
test al, al
je 0x497588
lea eax, [ebp - 0x4155]
push eax
lea eax, [ebx + 0x1118]
push eax
push edi
call fcn.0049ff8c
mov dl, al
add esp, 0xc
mov byte [ebp - 0x4140], dl
test dl, dl
je 0x4974b6
cmp byte [ebp - 0x4155], 0
je 0x4974b6
mov cl, 1
jmp 0x4974ba
xor eax, eax
mov cl, al
or byte [ebx + 0x2119], cl
lea eax, [ebx + 0x211c]
xor ecx, ecx
mov dword [eax + 0x10], ecx
cmp dword [eax + 0x14], 8
jb 0x4974d3
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
jmp 0x49757a
push ecx
lea ecx, [edi + 0x35cc]
lea edx, [ebp - 0x2014]
call fcn.00499503
lea edx, [ebp - 0x2014]
mov dword [esp], 0x800
mov ecx, edx
call fcn.00498e82
lea eax, [ebp - 0x40f4]
mov ecx, ebx
push eax
lea eax, [ebp - 0x2014]
push eax
push edi
call fcn.00497e22
mov al, byte [ebp - 0x413d]
test al, al
je 0x497588
cmp word [ebp - 0x40f4], 0
je 0x497588
lea eax, [ebp - 0x40f4]
cmp esi, 4
jne 0x497551
push ecx
push eax
lea edx, [ebx + 0x1118]
call fcn.0049ec5c
pop ecx
mov dl, al
pop ecx
mov byte [ebp - 0x4140], dl
jmp 0x49757a
sub esp, 0xc
push eax
lea eax, [ebx + 0x1118]
push eax
lea eax, [ebp - 0x2014]
push eax
push ecx
lea eax, [ebp - 0x30f4]
mov ecx, ebx
push eax
call fcn.00497bd8
mov dl, al
mov byte [ebp - 0x4140], al
test dl, dl
je 0x497454
mov al, byte [ebp - 0x413d]
cmp dword [edi + 0x6ef0], 2
jne 0x497462
test al, al
jne 0x49746a
jmp 0x49745a
xor eax, eax
mov byte [ebx + 0x1117], al
jmp 0x497683
cmp byte [edi + 0x3560], 0
jne 0x497683
cmp byte [edi + 0x24f0], 0
jne 0x4975e0
push dword [edi + 0x352c]
lea ecx, [ebx + 0x28]
push dword [edi + 0x3528]
call fcn.00497b44
pop ecx
pop ecx
jmp 0x497683
movzx eax, byte [edi + 0x35b8]
mov ecx, dword [ebx + 0x100]
push eax
push dword [edi + 0x35bc]
call fcn.004a9ee5
mov edx, dword [ebx + 0x100]
mov eax, dword [edi + 0x3528]
mov ecx, dword [edi + 0x352c]
mov dword [edx + 0x4c40], eax
xor eax, eax
mov dword [edx + 0x4c44], ecx
mov byte [edx + 0x4c58], al
cmp dword [edi + 0x6ef0], 3
je 0x49766a
cmp dword [edi + 0x24ec], 0xf
ja 0x49766a
cmp dword [ebx + 0x108], 1
jbe 0x497649
mov byte [ebp - 0x4158], 1
cmp byte [edi + 0x6ef4], al
jne 0x49764f
mov byte [ebp - 0x4158], al
mov ecx, dword [ebx + 0x100]
cmp byte [ecx + 0x4c38], al
jne 0x497683
push dword [ebp - 0x4158]
call fcn.004a4c2f
jmp 0x497683
movzx eax, byte [edi + 0x35b8]
mov ecx, dword [ebx + 0x100]
push eax
push dword [edi + 0x24ec]
call fcn.004aa05a
mov ecx, edi
call fcn.0049a822
cmp byte [edi + 0x3561], 0
jne 0x4976c1
xor edx, edx
lea eax, [edi + 0x3593]
cmp byte [edi + 0x3592], dl
lea ecx, [ebx + 0xe8]
cmovne edx, eax
lea eax, [edi + 0x3538]
push edx
push eax
call fcn.004abbff
test al, al
je 0x4976c1
mov cl, 1
xor edx, edx
jmp 0x4976c5
xor edx, edx
mov cl, dl
cmp byte [edi + 0x35b8], 0
jne 0x4976d6
mov byte [ebx + 0x114], dl
jmp 0x4976fc
cmp byte [edi + 0x24f0], 0
je 0x4976fc
cmp dword [edi + 0x352c], edx
jl 0x4976fc
jg 0x4976f1
cmp dword [edi + 0x3528], edx
jbe 0x4976fc
test cl, cl
je 0x4976fc
mov byte [ebx + 0x114], 1
cmp byte [ebp - 0x413e], 0
mov al, dl
mov byte [ebp - 0x413d], al
jne 0x497822
cmp byte [ebp - 0x4145], 0
je 0x497822
test cl, cl
je 0x497791
mov esi, dword [ebp - 0x414c]
push 0x50
pop ecx
cmp si, cx
je 0x497828
push 0x49
pop ecx
cmp si, cx
je 0x497828
mov ecx, dword [ebx + 0x20]
cmp byte [ecx + 0x704f], 0
jne 0x497828
cmp dword [edi + 0x3538], edx
mov eax, 0x506858
mov edx, 0x4f3ea8
cmovne eax, edx
cmp byte [ecx + 0x704c], 0
push eax
mov eax, 0x500028
mov edx, str._b_b_b_b_b
cmove eax, edx
push eax
push str._s_s
call fcn.00414711
mov al, byte [ebp - 0x413d]
add esp, 0xc
jmp 0x497828
cmp byte [edi + 0x3563], 0
je 0x4977b9
cmp byte [edi + 0x3589], 0
je 0x4977ac
cmp byte [edi + 0x6f04], 0
je 0x4977b9
cmp byte [ebx + 0x114], 0
jne 0x4977b9
push 4
jmp 0x4977bb
push 3
lea ecx, [ebp - 0x2064]
call fcn.004964f8
lea eax, [ebp - 0x1014]
push eax
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
add esp, 4
mov byte [ebp - 0x413d], 1
mov ecx, 0x515c44
push 3
call fcn.0049e598
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 0xa3d8]
cmp eax, 0xf
je 0x49781c
mov esi, dword [ebp - 0x414c]
cmp eax, 0x18
mov al, byte [ebp - 0x413d]
je 0x497828
mov dword [ecx + 0xa3d8], 0xc
jmp 0x497828
mov al, byte [ebp - 0x413d]
mov esi, dword [ebp - 0x414c]
cmp dword [ebp - 0x4154], 0
mov dl, byte [ebp - 0x4140]
je 0x497848
cmp dword [edi + 0x35c8], 4
jne 0x497848
test dl, dl
je 0x497848
mov cl, 1
jmp 0x49784a
xor ecx, ecx
cmp byte [ebp - 0x413f], 0
jne 0x4979af
cmp si, word [ebp - 0x4170]
je 0x49786d
cmp si, word [ebp - 0x4174]
jne 0x4979af
cmp dword [ebp - 0x4154], 0
je 0x49788f
test cl, cl
jne 0x49788f
cmp dword [edi + 0x35c8], 5
jne 0x4979af
test dl, dl
je 0x4979af
test al, al
je 0x4978a9
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x7094], 0
je 0x4979af
mov al, byte [ebp - 0x413d]
test cl, cl
jne 0x497934
mov edx, dword [ebp - 0x415c]
xor ecx, ecx
xor esi, esi
cmp edx, ecx
mov ecx, dword [ebp - 0x4160]
ja 0x4978c9
cmp ecx, esi
jbe 0x4978e9
test al, al
jne 0x4978dd
cmp dword [ebx + 0xa0], ecx
jne 0x4978dd
cmp dword [ebx + 0xa4], edx
je 0x4978e9
push dword [ebp - 0x30ec]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov ecx, dword [ebx + 0x20]
lea eax, [edi + 0x3518]
xor edx, edx
cmp dword [ecx + 0x83c8], esi
cmove eax, edx
cmp dword [ecx + 0x83c4], esi
push eax
lea eax, [edi + 0x3510]
cmove eax, edx
cmp dword [ecx + 0x83c0], esi
push eax
lea eax, [edi + 0x3508]
cmove eax, edx
lea ecx, [ebp - 0x30f4]
push eax
call fcn.004a088d
lea ecx, [ebp - 0x30f4]
call fcn.004a0322
mov eax, dword [ebx + 0x20]
lea esi, [ebx + 0x1118]
cmp byte [eax + 0x729d], 0
je 0x497959
test dword [edi + 0x24f4], 0x800
je 0x497959
mov ecx, esi
call fcn.004a1068
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x705c], 0
je 0x49796c
and dword [edi + 0x24f4], 0xffffffdf
mov eax, dword [ebx + 0x20]
cmp byte [eax + 0x729e], 0
jne 0x4979a8
mov edx, dword [edi + 0x24f4]
mov ecx, esi
call fcn.004a0da2
test al, al
jne 0x4979a8
push 0x11
lea ecx, [ebp - 0x2064]
call fcn.004964f8
push esi
lea edx, [edi + 0x32]
lea ecx, [ebp - 0x2064]
call fcn.00498839
add esp, 4
mov byte [ebx + 0x1117], 1
lea ecx, [ebp - 0x30f4]
call fcn.004a004d
cmp byte [ebp - 0x4150], 0
mov al, byte [ebp - 0x413e]
je 0x4979cf
inc dword [ebx + 0x10c]
cmp byte [ebx + 0x80], 0
jne 0x497ab5
cmp byte [ebp - 0x4144], 0
jne 0x497a42
cmp byte [edi + 0x6ef4], 0
je 0x497a3b
test al, al
je 0x497ab5
jmp 0x497a42
cmp dword [edi + 0x6ef0], 2
jne 0x497a67
cmp eax, 0x77
jne 0x497a67
cmp byte [ebx + 0x1117], 0
je 0x497a3b
mov ecx, dword [ebx + 0x20]
lea edx, [ebx + 0x1118]
cmp byte [ecx + 0x72f1], 0
jne 0x497a3b
movzx eax, word [edi + 0x4810]
sub eax, 0x104
je 0x497a55
sub eax, 1
jne 0x497a3b
mov ecx, edi
call fcn.0049ece5
mov ecx, edi
call fcn.0049a822
mov al, 1
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b7879
leave
ret 0xc
cmp byte [ecx + 0x7088], 0
je 0x497a3b
mov ecx, edi
call fcn.0049f25c
jmp 0x497a3b
cmp eax, 3
jne 0x497a89
cmp byte [ebx + 0x1117], 0
je 0x497a3b
mov ecx, dword [ebx + 0x20]
lea eax, [ebx + 0x1118]
push eax
mov edx, edi
call fcn.0049fb09
pop ecx
jmp 0x497a3b
cmp eax, 5
jne 0x497a3b
cmp byte [edi + 0x47f4], 0
je 0x497ab5
push ecx
push edx
lea edx, [ebx + 0x28]
mov ecx, edi
call fcn.0049dde3
pop ecx
pop ecx
test al, al
jne 0x497ab9
push 1
mov ecx, 0x515c44
call fcn.0049e598
xor al, al
jmp 0x497a44
mov eax, dword [edi]
xor ecx, ecx
push ecx
push dword [edi + 0x6ee4]
mov ecx, edi
push dword [edi + 0x6ee0]
call dword [eax + 0x10]
jmp 0x497a42