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

Disassembly:
sub esp, 0x3c
push edi
push 0x2800
mov byte [esp + 0x28], 0
mov dword [esp + 0x3c], 0
call fcn.10034280
mov edi, eax
mov dword [esp + 4], edi
test edi, edi
jne 0x10034669
mov eax, dword [esp + 0x44]
mov dword [eax], 0x3fad
lea eax, [edi - 0xd]
pop edi
add esp, 0x3c
ret 0x20
push ebx
push 0x2800
push 0
push edi
call fcn.10045260
mov ebx, dword [esp + 0x64]
add esp, 0xc
test ebx, ebx
jg 0x1003469f
mov eax, dword [esp + 0x48]
push edi
mov dword [eax], 0x3fae
call fcn.100342c0
pop ebx
mov eax, 0xfffffffc
pop edi
add esp, 0x3c
ret 0x20
cmp ebx, 0xff
jle 0x100346c4
mov eax, dword [esp + 0x48]
push edi
mov dword [eax], 0x3faf
call fcn.100342c0
pop ebx
mov eax, 0xfffffffc
pop edi
add esp, 0x3c
ret 0x20
push ebp
mov ebp, dword [esp + 0x4c]
push esi
push 0x80
push dword [esp + 0x60]
push ebp
call fcn.100414d0
mov esi, eax
mov dword [esp + 0x2c], esi
test esi, esi
jns 0x100346fc
push edi
mov dword [ebp], 0x3fb0
call fcn.100342c0
mov eax, esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x3c
ret 0x20
mov eax, dword [esp + 0x58]
mov ecx, eax
mov edx, dword [esp + 0x54]
and ecx, 0x8000
mov dword [esp + 0x48], ecx
and eax, 0xffff7fff
xor ecx, ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], ecx
test edx, edx
jne 0x1003473a
cmp byte [ebp + 0x54], cl
jne 0x10034750
mov dword [esp + 0x18], 9
jmp 0x10034758
cmp edx, 2
je 0x10034750
mov edx, dword [esp + 0x68]
movzx edx, byte [edx + 0xc]
mov dword [esp + 0x18], edx
cmp edx, 4
jg 0x10034758
mov dword [esp + 0x18], 3
mov edx, eax
lea esi, [edi + 0x58]
and edx, 0xf
mov dword [esp + 0x20], edx
cmp edx, 8
ja case.0x10034770.1
movzx eax, byte [edx + 0x100358d8]
jmp dword [eax*4 + 0x100358d0]
cmp dword [esp + 0x18], 5
jl case.0x10034770.1
lea esi, [edi + 0x78]
cmp dword [esp + 0x54], 1
jne 0x10034a14
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x3d]
cmp edx, 8
ja case.0x1003479c.7
jmp dword [edx*4 + 0x100358e4]
mov eax, dword [esp + 0x6c]
xor ebp, ebp
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x100347ec
xor ebx, ebx
movzx eax, byte [ecx + eax*2 - 2]
lea edx, [edx + 4]
mov byte [esi], al
inc ebx
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
mov byte [esi + 1], al
add esi, 2
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
add ebp, eax
mov eax, dword [edx]
test eax, eax
jne 0x100347b3
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
jmp 0x100347ec
xor ebp, ebp
mov edx, 1
cmp ebx, edx
jl 0x10034854
cmp dword [esp + 0x58], 2
mov edi, 0x2a30
mov eax, 0x7fee
cmove edi, eax
inc ecx
jmp 0x10034814
mov ebp, dword [esp + 0x14]
movzx eax, byte [ecx - 1]
mov byte [esi], al
movzx eax, byte [ecx]
mov byte [esi + 1], al
add esi, 2
movzx eax, byte [ecx]
add ebp, eax
mov eax, ebp
mov dword [esp + 0x14], ebp
cmp eax, edi
jg 0x1003483c
inc edx
add ecx, 2
cmp edx, ebx
jle 0x10034810
jmp 0x10034858
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb1
jmp 0x10035875
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], 5
mov edx, dword [esp + 0x20]
jl 0x100349cd
cmp edx, 5
je 0x10034875
cmp edx, 8
jne 0x100349cd
mov word [esi], 0x203
add esi, 2
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x100349cd
mov eax, dword [esp + 0x6c]
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x100348d9
xor ebp, ebp
xor ebx, ebx
lea esp, [esp]
movzx eax, byte [ecx + eax*2 - 2]
lea edx, [edx + 4]
mov byte [esi], al
inc ebx
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
mov byte [esi + 1], al
add esi, 2
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
add ebp, eax
mov eax, dword [edx]
test eax, eax
jne 0x100348a0
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov dword [esi], 0x2030404
add ecx, 8
mov word [esi + 4], 0x203
add esi, 6
mov dword [esp + 0x14], ecx
cmp ecx, 0x107
jle 0x100349c9
mov dword [ebp], 0x3fb2
mov esi, 0xfffffffc
jmp 0x10035875
mov eax, dword [esp + 0x6c]
xor ebp, ebp
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x10034955
xor ebx, ebx
movzx eax, byte [ecx + eax*2 - 2]
lea edx, [edx + 4]
mov byte [esi], al
inc ebx
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
mov byte [esi + 1], al
add esi, 2
mov eax, dword [edx - 4]
movzx eax, byte [ecx + eax*2 - 1]
add ebp, eax
mov eax, dword [edx]
test eax, eax
jne 0x10034920
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x58]
sar eax, 4
and eax, 0xffffff0f
mov dword [esp + 0x30], eax
cmp al, 3
jne 0x1003498e
mov dword [esi], 0x2030404
add esi, 4
cmp ebp, 0x10b
jle 0x100349c9
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov dword [eax], 0x3fb3
jmp 0x10035875
mov eax, dword [esp + 0x68]
mov edx, 1
mov ecx, dword [eax + 0x3d]
cmp ebx, edx
jl 0x100349c9
mov edi, edi
movzx eax, byte [ecx]
mov byte [esi], al
movzx eax, byte [ecx + 1]
mov byte [esi + 1], al
add esi, 2
movzx eax, byte [ecx + 1]
add ebp, eax
mov dword [esp + 0x14], ebp
cmp ebp, 0x2a30
jg 0x10034a00
inc edx
add ecx, 2
cmp edx, ebx
jle 0x100349a0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
cmp ebp, 1
je 0x10034cac
cmp edx, 4
je 0x10034cac
cmp ebp, 5
je 0x10034c99
cmp ebp, 8
je 0x10034c99
mov eax, ebx
jmp 0x10034cae
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov dword [eax], 0x3fb4
jmp 0x10035875
mov ebx, dword [esp + 0x64]
mov ebp, 1
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x60], ebp
jl 0x10034c89
jmp 0x10034a30
mov eax, dword [ebx + 4]
movsx eax, byte [eax]
push eax
call fcn.1004709d
mov dl, al
add esp, 4
movsx edi, dl
lea ecx, [edi - 0x23]
cmp ecx, 0x36
ja case.0x10034a57.37
movzx ecx, byte [ecx + 0x1003593c]
jmp dword [ecx*4 + 0x10035908]
cmp dl, 0x41
mov eax, 0x18
mov ecx, 1
cmove eax, ecx
mov byte [esi], al
mov eax, dword [ebx + 4]
inc eax
je 0x10034be1
push eax
call fcn.10040360
mov edx, eax
lea ecx, [edx - 1]
cmp ecx, 0xfe
jbe 0x10034b9e
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb6
jmp 0x10035875
mov byte [esi], 6
mov edx, 8
jmp 0x10034b9e
mov byte [esi], 5
mov edx, 8
jmp 0x10034b9e
mov byte [esi], 2
jmp 0x10034b99
mov byte [esi], 3
mov edx, 2
jmp 0x10034b9e
cmp dword [esp + 0x18], 5
jl 0x10034c29
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10034af4
cmp eax, 2
jne 0x10034c29
mov eax, dword [ebx + 4]
inc eax
je 0x10034c11
push eax
call fcn.10040360
mov edx, eax
lea eax, [edx - 1]
cmp eax, 0xef
ja 0x10034bf9
lea eax, [edi - 0x42]
add edx, 0xa
cmp eax, 0xd
ja case.0x10034b26.67
movzx eax, byte [eax + 0x1003598c]
jmp dword [eax*4 + 0x10035974]
mov byte [esi], 0xc
jmp case.0x10034b26.67
mov byte [esi], 0xd
jmp case.0x10034b26.67
mov byte [esi], 0xe
jmp case.0x10034b26.67
mov byte [esi], 0xf
jmp case.0x10034b26.67
mov byte [esi], 0x10
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10034b51
cmp eax, 2
jne 0x10034b9e
mov dword [esp + 0x44], 1
jmp 0x10034b9e
mov byte [esi], 4
jmp 0x10034b99
mov byte [esi], 0x17
mov edx, 0x10
jmp 0x10034b9e
mov byte [esi], 0x14
jmp 0x10034b99
mov byte [esi], 0x15
mov edx, 8
jmp 0x10034b9e
mov byte [esi], 9
mov edx, 1
jmp 0x10034b9e
cmp dword [esp + 0x28], 0
jne 0x10034c59
mov dword [esp + 0x28], 1
mov byte [esi], 0x16
mov edx, 4
mov ecx, dword [esp + 0x14]
mov eax, 0x2a30
add ecx, edx
mov byte [esi + 1], dl
add esi, 2
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x58], 2
mov edx, 0x7fee
cmove eax, edx
cmp ecx, eax
jg 0x10034c41
inc ebp
add ebx, 8
cmp ebp, dword [esp + 0x60]
jle 0x10034a30
mov ebx, dword [esp + 0x60]
xor ecx, ecx
mov edx, dword [esp + 0x20]
jmp 0x100349d1
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb5
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb9
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb8
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb7
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbc
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xffffffd6
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fba
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbb
jmp 0x10035875
mov ebx, dword [esp + 0x60]
jmp 0x100349d1
xor ecx, ecx
jmp 0x100349d1
cmp dword [esp + 0x18], 5
jge 0x10034ca5
lea eax, [ecx + ebx]
jmp 0x10034cae
lea eax, [ebx + 1]
add eax, ecx
jmp 0x10034cae
xor eax, eax
mov edx, dword [esp + 0x5c]
lea ebx, [esi + 4]
mov esi, edx
lea ebx, [ebx + eax*4]
mov dword [esp + 0x28], ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10034cc1
sub esi, ecx
cmp esi, 0x4f
jle 0x10034ce7
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbd
jmp 0x10035875
mov al, byte [edx]
mov edi, edx
test al, al
je 0x10034d0c
nop
movsx eax, al
push eax
call fcn.1004709d
mov byte [ebx], al
lea edi, [edi + 1]
mov al, byte [edi]
add esp, 4
inc ebx
test al, al
jne 0x10034cf0
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x28]
xor edx, edx
mov eax, 0x4f
mov dword [esp + 0x24], edx
sub eax, esi
mov dword [esp + 0x40], edx
add edi, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x28], edi
cmp ebp, 1
je 0x10035401
mov eax, dword [esp + 0x20]
cmp eax, 4
je 0x10035401
cmp dword [esp + 0x54], 1
jne 0x1003502e
cmp eax, 8
ja case.0x10034d60.1
movzx eax, byte [eax + 0x100359a8]
jmp dword [eax*4 + 0x1003599c]
cmp dword [esp + 0x1c], 1
jne 0x10034db6
mov esi, 0x100028b8
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034d99
mov al, byte [esi + ecx]
test al, al
je 0x10034d99
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034d80
jmp 0x10034d9d
test edx, edx
jne 0x10034d9e
dec ecx
add edi, 8
mov byte [ecx], 0
mov edx, 8
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edx
jmp 0x10034e3d
mov eax, dword [esp + 0x68]
mov ebp, dword [eax + 0x95]
mov eax, dword [esp + 0x6c]
mov ebx, eax
cmp dword [eax], edx
je 0x10034e39
lea ebx, [ebx]
mov eax, dword [ebx]
mov edi, dword [ebp + eax*4 - 4]
mov esi, edi
lea ecx, [esi + 1]
jmp 0x10034de0
mov al, byte [esi]
inc esi
test al, al
jne 0x10034de0
sub esi, ecx
cmp esi, 0x19
jg 0x10034e79
inc esi
mov ecx, 0x2800
add edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
lea eax, [ecx + 0x7fffd7fe]
test eax, eax
je 0x10034e1b
mov al, byte [edi]
test al, al
je 0x10034e1b
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x10034e02
jmp 0x10034e1f
test ecx, ecx
jne 0x10034e20
dec edx
mov edi, dword [esp + 0x28]
add ebx, 4
mov byte [edx], 0
add edi, esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
cmp dword [ebx], 0
jne 0x10034dd0
mov ebp, dword [esp + 0x58]
cmp ebp, 3
je 0x10034e4b
cmp ebp, 6
jne case.0x10034d60.0
mov esi, 0x100028c0
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034e91
mov al, byte [esi + ecx]
test al, al
je 0x10034e91
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034e60
jmp 0x10034e95
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbe
jmp 0x10035875
test edx, edx
jne 0x10034e96
dec ecx
add edi, 7
mov byte [ecx], 0
mov esi, 0x100028c8
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea ebx, [ebx]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034ec9
mov al, byte [esi + ecx]
test al, al
je 0x10034ec9
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034eb0
jmp 0x10034ecd
test edx, edx
jne 0x10034ece
dec ecx
add edi, 8
mov byte [ecx], 0
mov esi, 0x100028d0
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034f0d
mov al, byte [esi + ecx]
test al, al
je 0x10034f0d
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034ee2
dec ecx
add edi, 0xb
add dword [esp + 0x24], 0x1a
mov byte [ecx], dl
mov edx, dword [esp + 0x60]
jmp 0x1003515f
test edx, edx
jne 0x10034f12
dec ecx
add edi, 0xb
mov byte [ecx], 0
add dword [esp + 0x24], 0x1a
mov edx, dword [esp + 0x60]
jmp 0x1003515f
mov eax, dword [esp + 0x68]
mov ebp, 1
mov ebx, dword [eax + 0x95]
cmp dword [esp + 0x60], ebp
jl 0x10034fa9
jmp 0x10034f40
mov edi, dword [ebx]
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10034f47
sub esi, ecx
cmp esi, 0x19
jg 0x10034ffd
inc esi
mov ecx, 0x2800
add edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
lea esp, [esp]
lea eax, [ecx + 0x7fffd7fe]
test eax, eax
je 0x10034f89
mov al, byte [edi]
test al, al
je 0x10034f89
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x10034f70
jmp 0x10034f8d
test ecx, ecx
jne 0x10034f8e
dec edx
mov edi, dword [esp + 0x28]
inc ebp
add edi, esi
mov byte [edx], 0
mov edx, dword [esp + 0x24]
add ebx, 4
mov dword [esp + 0x28], edi
cmp ebp, dword [esp + 0x60]
jle 0x10034f40
mov ebx, dword [esp + 0x18]
cmp ebx, 5
jl 0x100353e2
mov ebp, dword [esp + 0x58]
cmp ebp, 5
je 0x10034fc4
cmp ebp, 8
jne 0x10035025
mov esi, 0x100028dc
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035015
mov al, byte [ecx + esi]
test al, al
je 0x10035015
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034fd2
dec ecx
add edi, 5
add dword [esp + 0x24], 5
mov byte [ecx], dl
mov edx, dword [esp + 0x60]
jmp 0x10035163
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbf
jmp 0x10035875
test edx, edx
jne 0x1003501a
dec ecx
add edi, 5
mov byte [ecx], 0
add dword [esp + 0x24], 5
mov edx, dword [esp + 0x60]
jmp 0x10035163
mov esi, dword [esp + 0x64]
mov ebx, 1
mov edx, dword [esp + 0x60]
mov eax, esi
mov dword [esp + 0x34], eax
cmp edx, ebx
jl 0x100350b5
mov ebp, dword [eax]
push ebp
call fcn.10035a60
test eax, eax
jne 0x10035121
lea edi, [eax + 1]
cmp ebx, edi
jle 0x10035099
lea esp, [esp]
mov eax, dword [esi]
mov ecx, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10035084
test dl, dl
je 0x10035080
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10035084
add eax, 2
add ecx, 2
test dl, dl
jne 0x10035064
xor eax, eax
jmp 0x10035089
sbb eax, eax
or eax, 1
test eax, eax
je 0x10035109
inc edi
add esi, 8
cmp edi, ebx
jl 0x10035060
mov eax, dword [esp + 0x34]
inc ebx
mov edx, dword [esp + 0x60]
add eax, 8
mov esi, dword [esp + 0x64]
mov dword [esp + 0x34], eax
cmp ebx, edx
jle 0x10035045
mov edi, dword [esp + 0x28]
mov ebp, 1
mov ebx, esi
cmp edx, ebp
jl 0x1003515b
mov edi, dword [ebx]
mov esi, edi
lea ecx, [esi + 1]
jmp 0x100350d0
mov al, byte [esi]
inc esi
test al, al
jne 0x100350d0
sub esi, ecx
cmp esi, 0x19
jg 0x10035196
mov edx, dword [esp + 0x28]
inc esi
add dword [esp + 0x24], esi
mov ecx, 0x2800
lea eax, [ecx + 0x7fffd7fe]
test eax, eax
je 0x10035139
mov al, byte [edi]
test al, al
je 0x10035139
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x100350f0
jmp 0x1003513d
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc1
jmp 0x10035875
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc0
jmp 0x10035875
test ecx, ecx
jne 0x1003513e
dec edx
mov edi, dword [esp + 0x28]
inc ebp
mov byte [edx], 0
add edi, esi
mov edx, dword [esp + 0x60]
add ebx, 8
mov dword [esp + 0x28], edi
cmp ebp, edx
jle 0x100350c4
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x18]
cmp ebx, 5
mov ebx, dword [esp + 0x10]
jl 0x100353e6
mov eax, edi
sub eax, ebx
sub eax, 0x58
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
cmp eax, 8
ja case.0x1003518f.89
movzx eax, byte [eax + 0x100359c4]
jmp dword [eax*4 + 0x100359b4]
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc2
jmp 0x10035875
mov eax, 1
cmp edx, eax
jl case.0x1003518f.89
mov byte [edi], al
inc eax
add edi, 2
cmp eax, edx
jle 0x100351b7
jmp case.0x1003518f.89
mov edx, 3
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x1c]
cmp eax, 1
jl 0x100351f1
mov ecx, dword [esp + 0x6c]
mov edx, eax
jmp 0x100351e0
mov al, byte [ecx]
lea ecx, [ecx + 4]
mov byte [edi], al
add edi, 2
dec edx
jne 0x100351e0
mov edx, dword [esp + 0x60]
mov ecx, 1
cmp edx, ecx
jl 0x10035211
mov ebx, dword [esp + 0x1c]
mov edi, edi
lea eax, [ecx + ebx]
inc ecx
mov byte [edi], al
add edi, 2
cmp ecx, edx
jle 0x10035200
mov ebx, dword [esp + 0x10]
cmp ebp, 3
je case.0x1003518f.89
cmp ebp, 6
je case.0x1003518f.89
mov al, byte [esp + 0x1c]
inc al
add al, dl
mov byte [edi], al
add edi, 2
mov ebp, dword [esp + 0x50]
mov eax, edi
sub eax, ebx
sub eax, 0x58
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
dec eax
cmp eax, 3
ja case.default.0x10035244
jmp dword [eax*4 + 0x100359d0]
mov esi, 0x100028e4
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035280
mov al, byte [ecx + esi]
test al, al
je 0x10035280
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035260
dec ecx
add edi, 5
jmp 0x10035361
test edx, edx
jne 0x10035285
dec ecx
add edi, 5
jmp 0x10035361
mov esi, 0x100028ec
mov edx, 0x2800
mov ecx, edi
sub esi, edi
jmp 0x100352a0
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100352c0
mov al, byte [ecx + esi]
test al, al
je 0x100352c0
mov byte [ecx], al
inc ecx
dec edx
jne 0x100352a0
dec ecx
add edi, 7
jmp 0x10035361
test edx, edx
jne 0x100352c5
dec ecx
add edi, 7
jmp 0x10035361
mov esi, 0x100028f4
mov edx, 0x2800
mov ecx, edi
sub esi, edi
jmp 0x100352e0
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100352fd
mov al, byte [ecx + esi]
test al, al
je 0x100352fd
mov byte [ecx], al
inc ecx
dec edx
jne 0x100352e0
dec ecx
add edi, 8
jmp 0x10035361
test edx, edx
jne 0x10035302
dec ecx
add edi, 8
jmp 0x10035361
mov esi, 0x100028fc
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035359
mov al, byte [ecx + esi]
test al, al
je 0x10035359
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035315
jmp 0x1003535d
mov esi, 0x10001f34
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035359
mov al, byte [ecx + esi]
test al, al
je 0x10035359
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035340
jmp 0x1003535d
test edx, edx
jne 0x1003535e
dec ecx
add edi, 6
mov esi, dword [esp + 0x20]
mov byte [ecx], 0
cmp esi, 8
je 0x10035376
cmp esi, 6
jne 0x100353ea
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x100353ea
mov esi, dword [ecx]
mov eax, edi
sub eax, ebx
mov edx, 0x2800
sub eax, 0x58
mov ecx, edi
mov dword [esp + 0x3c], eax
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100353ab
mov al, byte [esi]
test al, al
je 0x100353ab
mov byte [ecx], al
inc esi
inc ecx
dec edx
jne 0x10035392
jmp 0x100353af
test edx, edx
jne 0x100353b0
dec ecx
mov eax, dword [esp + 0x64]
mov byte [ecx], 0
mov ecx, dword [eax]
mov edx, ecx
lea esi, [edx + 1]
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x100353c0
sub edx, esi
inc edx
add edi, edx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100353d0
mov esi, dword [esp + 0x24]
sub ecx, edx
inc esi
add esi, ecx
jmp 0x100353ee
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 3]
cmp eax, 5
ja case.0x100353fa.7
jmp dword [eax*4 + 0x100359e0]
mov ebx, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x50]
jmp 0x100353ee
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x1c]
cmp dword [esp + 0x18], 5
mov dword [esp + 0x60], edx
jl 0x1003545a
inc edx
mov dword [esp + 0x60], edx
jmp 0x1003545a
mov edx, dword [esp + 0x1c]
add edx, 3
mov dword [esp + 0x60], edx
jmp 0x1003545a
cmp byte [esp + 0x30], 3
jne 0x10035448
mov edx, dword [esp + 0x1c]
add edx, 2
mov dword [esp + 0x60], edx
jmp 0x1003545a
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x1c]
mov dword [esp + 0x60], edx
jmp 0x1003545a
mov edx, dword [esp + 0x60]
sub edi, ebx
movzx eax, di
mov edi, 0x2000
cmp ax, di
jbe 0x10035470
mov ebx, 0x2800
jmp 0x1003548f
mov edi, 0x1000
cmp ax, di
jbe 0x10035481
mov ebx, 0x2000
jmp 0x1003548f
mov edi, 0x800
cmp di, ax
sbb ebx, ebx
and ebx, edi
add ebx, edi
mov edi, dword [esp + 0x10]
mov eax, ebx
shr eax, 8
mov byte [edi + 3], al
mov eax, dword [esp + 0x58]
mov byte [edi + 2], bl
cmp eax, 1
jne 0x100354c3
add dword [esp + 0x14], 6
mov ecx, 0x43
cmp dword [esp + 0x18], 5
mov byte [edi + 0x1e], al
mov eax, 0x22
cmovl ecx, eax
jmp 0x1003551f
cmp ecx, 4
jne 0x100354f8
cmp byte [esp + 0x30], 3
mov byte [edi + 0x1e], 1
jne 0x100354da
add dword [esp + 0x14], 0xc
jmp 0x100354df
add dword [esp + 0x14], 6
cmp dword [esp + 0x18], 5
jge 0x100354ed
mov ecx, 0x22
jmp 0x1003551f
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
add ecx, 0x44
jmp 0x1003551f
cmp dword [esp + 0x18], 5
jge 0x10035506
mov ecx, 0x20
jmp 0x1003551f
test eax, eax
je 0x1003551a
cmp eax, 2
je 0x1003551a
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
add ecx, 0x43
jmp 0x1003551f
mov ecx, 0x42
mov eax, dword [esp + 0x20]
mov byte [edi + 4], al
mov eax, dword [esp + 0x14]
mov byte [edi], al
sar eax, 8
mov byte [edi + 1], al
mov eax, edx
sar eax, 8
mov byte [edi + 0x22], al
mov eax, dword [esp + 0x58]
mov byte [edi + 0x12], cl
mov byte [edi + 0x21], dl
cmp eax, 8
ja case.0x10035550.1
movzx eax, byte [eax + 0x10035a08]
jmp dword [eax*4 + 0x100359f8]
mov eax, dword [esp + 0x6c]
mov al, byte [eax]
mov byte [edi + 0x23], al
jmp case.0x10035550.1
lea eax, [edx - 1]
mov byte [edi + 0x23], al
jmp case.0x10035550.1
mov eax, dword [esp + 0x18]
cmp eax, 5
jl 0x10035578
dec edx
mov dword [esp + 0x60], edx
mov byte [edi + 0x23], dl
cmp eax, 5
jl case.0x10035550.1
inc edx
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 0xc]
dec eax
cmp eax, 3
ja case.default.0x1003558e
jmp dword [eax*4 + 0x10035a14]
mov ecx, 0xb7
mov edx, 1
jmp 0x100355c5
mov ecx, 0x82
lea edx, [ecx - 0x80]
jmp 0x100355c5
mov ecx, 0xf0
mov edx, 2
jmp 0x100355c5
mov ecx, 0xa
lea edx, [ecx - 8]
jmp 0x100355c5
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 0x20]
mov byte [edi + 0x29], cl
cmp eax, 8
ja case.0x100355d5.7
jmp dword [eax*4 + 0x10035a24]
cmp dword [esp + 0x54], 1
jne 0x100355f0
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x92]
jmp 0x100355f5
mov eax, 0xd4
add eax, edx
add eax, ecx
cmp eax, 0xff
jle 0x10035601
inc eax
mov byte [edi + 0x2c], al
mov byte [edi + 0x2d], 1
jmp case.0x100355d5.7
lea eax, [ecx + 0x64]
add eax, edx
jmp 0x100355f9
cmp dword [esp + 0x54], 1
mov eax, dword [esp + 0x6c]
mov al, byte [eax]
mov byte [edi + 0x15], al
mov word [edi + 0x2c], 0x64ff
mov byte [edi + 0x2e], 0x63
jne 0x10035638
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x92]
jmp 0x1003563d
mov eax, 0xd4
add eax, edx
add eax, ecx
cmp eax, 0xff
jle 0x10035649
inc eax
mov byte [edi + 0x2f], al
jmp case.0x100355d5.7
cmp dword [esp + 0x54], 1
jne 0x10035664
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x91]
mov dword [edi + 0x2c], eax
jmp case.0x100355d5.7
mov word [edi + 0x2d], 0xd3d4
cmp dword [esp + 0x18], 5
jl 0x1003572c
mov ebp, dword [esp + 0x60]
lea eax, [ebp*2]
add eax, ebp
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x20]
lea esi, [esi + 0xab]
cmp eax, 8
ja case.default.0x1003569f
movzx eax, byte [eax + 0x10035a54]
jmp dword [eax*4 + 0x10035a48]
lea eax, [edi + 0x60]
mov byte [edi + 0x26], 0xff
push eax
push dword [esp + 0x30]
mov byte [edi + 0x28], 0xff
mov byte [edi + 0x56], 0x20
mov dword [edi + 0x58], 0x1090109
call fcn.10041460
push eax
call fcn.10034600
lea eax, [edi + 0x64]
push eax
lea eax, [ebp + 1]
push eax
call fcn.100345e0
lea eax, [edi + 0x66]
push eax
push dword [esp + 0x3c]
call fcn.100345e0
lea eax, [edi + 0x68]
push eax
push dword [esp + 0x40]
call fcn.100345e0
lea eax, [edi + 0x6a]
push eax
call fcn.10020f40
movzx eax, ax
push eax
call fcn.100345e0
lea eax, [edi + 0x6e]
mov word [edi + 0x6c], 0x101
push eax
push dword [esp + 0x44]
call fcn.100345e0
add ebp, 0x13
lea eax, [edi + 0x51]
push eax
lea eax, [esi + ebp*2]
push eax
call fcn.10034600
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov byte [edi + 0x39], cl
mov ecx, dword [esp + 0x58]
cmp ecx, 1
je 0x1003574b
cmp eax, 4
je 0x1003574b
mov word [edi + 0x3e], 0xf1f
cmp dword [esp + 0x18], 0xb
jge 0x10035756
mov byte [edi + 0x49], 1
mov eax, dword [ebp + 0x28]
test eax, eax
jns 0x1003577f
mov dword [ebp + 0x28], 0
jmp 0x1003578b
lea eax, [edi + 0x51]
push eax
lea eax, [ebp*2 + 0xab]
push eax
call fcn.100345e0
jmp case.0x1003569f.7
mov ebp, dword [esp + 0x50]
jmp 0x10035730
cmp eax, 4
jle 0x1003578b
mov dword [ebp + 0x28], 4
cmp ecx, 2
je 0x100357d6
cmp ecx, 3
je 0x100357d6
mov eax, dword [esp + 0x14]
cmp eax, 0x153
jg 0x100357b0
cmp dword [ebp + 0x28], 1
jne 0x100357b0
mov ecx, 1
jmp 0x1003583a
cmp eax, 0x2a8
jg 0x100357c1
mov ecx, 2
jmp 0x1003583a
cmp eax, 0x3fe
jg 0x100357cf
mov ecx, 3
jmp 0x1003583a
cmp eax, 0x553
jmp 0x1003580f
mov eax, dword [esp + 0x14]
cmp eax, 0x3fa
jg 0x100357ee
cmp dword [ebp + 0x28], 1
jne 0x100357ee
mov ecx, 1
jmp 0x1003583a
cmp eax, 0x7fa
jg 0x100357fc
mov ecx, 2
jmp 0x1003583a
cmp eax, 0xbfa
jg 0x1003580a
mov ecx, 3
jmp 0x1003583a
cmp eax, 0xfa0
jg 0x10035818
mov ecx, 4
jmp 0x1003583a
cmp eax, 0x1553
mov dword [esp + 0x18], 0xb
mov ecx, 0x20
mov byte [edi + 0x39], 0xb
mov edx, 0x10
mov byte [edi + 0x49], 0
cmovle ecx, edx
cmp dword [ebp + 0x28], ecx
cmovg ecx, dword [ebp + 0x28]
cmp dword [esp + 0x18], 5
mov byte [edi + 5], cl
jl 0x10035856
cmp dword [esp + 0x48], 0
je 0x10035856
mov byte [edi + 0x55], 1
movzx esi, bx
push esi
push edi
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll__lwrite]
cmp eax, esi
je 0x10035899
mov dword [ebp], 0x3fc3
mov esi, 0xfffffff0
push dword [esp + 0x2c]
call sub.KERNEL32.dll__lclose
push dword [esp + 0x5c]
call fcn.10041920
push edi
call fcn.100342c0
mov eax, esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x3c
ret 0x20
push dword [esp + 0x2c]
call sub.KERNEL32.dll__lclose
push edi
call fcn.100342c0
cmp dword [esp + 0x44], 0
je 0x100358c3
push dword [esp + 0x5c]
push ebp
call fcn.100417d0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x3c
ret 0x20
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x3c
ret 0x20