Function at 0x10034690
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.100342e0
mov edi, eax
mov dword [esp + 4], edi
test edi, edi
jne 0x100346c9
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.10045310
mov ebx, dword [esp + 0x64]
add esp, 0xc
test ebx, ebx
jg 0x100346ff
mov eax, dword [esp + 0x48]
push edi
mov dword [eax], 0x3fae
call fcn.10034320
pop ebx
mov eax, 0xfffffffc
pop edi
add esp, 0x3c
ret 0x20
cmp ebx, 0xff
jle 0x10034724
mov eax, dword [esp + 0x48]
push edi
mov dword [eax], 0x3faf
call fcn.10034320
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.10041580
mov esi, eax
mov dword [esp + 0x2c], esi
test esi, esi
jns 0x1003475c
push edi
mov dword [ebp], 0x3fb0
call fcn.10034320
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 0x1003479a
cmp byte [ebp + 0x54], cl
jne 0x100347b0
mov dword [esp + 0x18], 9
jmp 0x100347b8
cmp edx, 2
je 0x100347b0
mov edx, dword [esp + 0x68]
movzx edx, byte [edx + 0xc]
mov dword [esp + 0x18], edx
cmp edx, 4
jg 0x100347b8
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.0x100347d0.1
movzx eax, byte [edx + 0x10035938]
jmp dword [eax*4 + 0x10035930]
cmp dword [esp + 0x18], 5
jl case.0x100347d0.1
lea esi, [edi + 0x78]
cmp dword [esp + 0x54], 1
jne 0x10034a74
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x3d]
cmp edx, 8
ja case.0x100347fc.7
jmp dword [edx*4 + 0x10035944]
mov eax, dword [esp + 0x6c]
xor ebp, ebp
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x1003484c
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 0x10034813
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
jmp 0x1003484c
xor ebp, ebp
mov edx, 1
cmp ebx, edx
jl 0x100348b4
cmp dword [esp + 0x58], 2
mov edi, 0x2a30
mov eax, 0x7fee
cmove edi, eax
inc ecx
jmp 0x10034874
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 0x1003489c
inc edx
add ecx, 2
cmp edx, ebx
jle 0x10034870
jmp 0x100348b8
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb1
jmp 0x100358d5
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], 5
mov edx, dword [esp + 0x20]
jl 0x10034a2d
cmp edx, 5
je 0x100348d5
cmp edx, 8
jne 0x10034a2d
mov word [esi], 0x203
add esi, 2
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x10034a2d
mov eax, dword [esp + 0x6c]
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x10034939
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 0x10034900
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 0x10034a29
mov dword [ebp], 0x3fb2
mov esi, 0xfffffffc
jmp 0x100358d5
mov eax, dword [esp + 0x6c]
xor ebp, ebp
mov edx, eax
mov eax, dword [eax]
test eax, eax
je 0x100349b5
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 0x10034980
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 0x100349ee
mov dword [esi], 0x2030404
add esi, 4
cmp ebp, 0x10b
jle 0x10034a29
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov dword [eax], 0x3fb3
jmp 0x100358d5
mov eax, dword [esp + 0x68]
mov edx, 1
mov ecx, dword [eax + 0x3d]
cmp ebx, edx
jl 0x10034a29
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 0x10034a60
inc edx
add ecx, 2
cmp edx, ebx
jle 0x10034a00
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
cmp ebp, 1
je 0x10034d0c
cmp edx, 4
je 0x10034d0c
cmp ebp, 5
je 0x10034cf9
cmp ebp, 8
je 0x10034cf9
mov eax, ebx
jmp 0x10034d0e
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov dword [eax], 0x3fb4
jmp 0x100358d5
mov ebx, dword [esp + 0x64]
mov ebp, 1
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x60], ebp
jl 0x10034ce9
jmp 0x10034a90
mov eax, dword [ebx + 4]
movsx eax, byte [eax]
push eax
call fcn.1004714d
mov dl, al
add esp, 4
movsx edi, dl
lea ecx, [edi - 0x23]
cmp ecx, 0x36
ja case.0x10034ab7.37
movzx ecx, byte [ecx + 0x1003599c]
jmp dword [ecx*4 + 0x10035968]
cmp dl, 0x41
mov eax, 0x18
mov ecx, 1
cmove eax, ecx
mov byte [esi], al
mov eax, dword [ebx + 4]
inc eax
je 0x10034c41
push eax
call fcn.10040410
mov edx, eax
lea ecx, [edx - 1]
cmp ecx, 0xfe
jbe 0x10034bfe
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb6
jmp 0x100358d5
mov byte [esi], 6
mov edx, 8
jmp 0x10034bfe
mov byte [esi], 5
mov edx, 8
jmp 0x10034bfe
mov byte [esi], 2
jmp 0x10034bf9
mov byte [esi], 3
mov edx, 2
jmp 0x10034bfe
cmp dword [esp + 0x18], 5
jl 0x10034c89
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10034b54
cmp eax, 2
jne 0x10034c89
mov eax, dword [ebx + 4]
inc eax
je 0x10034c71
push eax
call fcn.10040410
mov edx, eax
lea eax, [edx - 1]
cmp eax, 0xef
ja 0x10034c59
lea eax, [edi - 0x42]
add edx, 0xa
cmp eax, 0xd
ja case.0x10034b86.67
movzx eax, byte [eax + 0x100359ec]
jmp dword [eax*4 + 0x100359d4]
mov byte [esi], 0xc
jmp case.0x10034b86.67
mov byte [esi], 0xd
jmp case.0x10034b86.67
mov byte [esi], 0xe
jmp case.0x10034b86.67
mov byte [esi], 0xf
jmp case.0x10034b86.67
mov byte [esi], 0x10
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10034bb1
cmp eax, 2
jne 0x10034bfe
mov dword [esp + 0x44], 1
jmp 0x10034bfe
mov byte [esi], 4
jmp 0x10034bf9
mov byte [esi], 0x17
mov edx, 0x10
jmp 0x10034bfe
mov byte [esi], 0x14
jmp 0x10034bf9
mov byte [esi], 0x15
mov edx, 8
jmp 0x10034bfe
mov byte [esi], 9
mov edx, 1
jmp 0x10034bfe
cmp dword [esp + 0x28], 0
jne 0x10034cb9
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 0x10034ca1
inc ebp
add ebx, 8
cmp ebp, dword [esp + 0x60]
jle 0x10034a90
mov ebx, dword [esp + 0x60]
xor ecx, ecx
mov edx, dword [esp + 0x20]
jmp 0x10034a31
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb5
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb9
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb8
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fb7
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffc
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbc
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xffffffd6
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fba
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbb
jmp 0x100358d5
mov ebx, dword [esp + 0x60]
jmp 0x10034a31
xor ecx, ecx
jmp 0x10034a31
cmp dword [esp + 0x18], 5
jge 0x10034d05
lea eax, [ecx + ebx]
jmp 0x10034d0e
lea eax, [ebx + 1]
add eax, ecx
jmp 0x10034d0e
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 0x10034d21
sub esi, ecx
cmp esi, 0x4f
jle 0x10034d47
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbd
jmp 0x100358d5
mov al, byte [edx]
mov edi, edx
test al, al
je 0x10034d6c
nop
movsx eax, al
push eax
call fcn.1004714d
mov byte [ebx], al
lea edi, [edi + 1]
mov al, byte [edi]
add esp, 4
inc ebx
test al, al
jne 0x10034d50
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 0x10035461
mov eax, dword [esp + 0x20]
cmp eax, 4
je 0x10035461
cmp dword [esp + 0x54], 1
jne 0x1003508e
cmp eax, 8
ja case.0x10034dc0.1
movzx eax, byte [eax + 0x10035a08]
jmp dword [eax*4 + 0x100359fc]
cmp dword [esp + 0x1c], 1
jne 0x10034e16
mov esi, 0x100028b8
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034df9
mov al, byte [esi + ecx]
test al, al
je 0x10034df9
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034de0
jmp 0x10034dfd
test edx, edx
jne 0x10034dfe
dec ecx
add edi, 8
mov byte [ecx], 0
mov edx, 8
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edx
jmp 0x10034e9d
mov eax, dword [esp + 0x68]
mov ebp, dword [eax + 0x95]
mov eax, dword [esp + 0x6c]
mov ebx, eax
cmp dword [eax], edx
je 0x10034e99
lea ebx, [ebx]
mov eax, dword [ebx]
mov edi, dword [ebp + eax*4 - 4]
mov esi, edi
lea ecx, [esi + 1]
jmp 0x10034e40
mov al, byte [esi]
inc esi
test al, al
jne 0x10034e40
sub esi, ecx
cmp esi, 0x19
jg 0x10034ed9
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 0x10034e7b
mov al, byte [edi]
test al, al
je 0x10034e7b
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x10034e62
jmp 0x10034e7f
test ecx, ecx
jne 0x10034e80
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 0x10034e30
mov ebp, dword [esp + 0x58]
cmp ebp, 3
je 0x10034eab
cmp ebp, 6
jne case.0x10034dc0.0
mov esi, 0x100028c0
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10034ef1
mov al, byte [esi + ecx]
test al, al
je 0x10034ef1
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034ec0
jmp 0x10034ef5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbe
jmp 0x100358d5
test edx, edx
jne 0x10034ef6
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 0x10034f29
mov al, byte [esi + ecx]
test al, al
je 0x10034f29
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034f10
jmp 0x10034f2d
test edx, edx
jne 0x10034f2e
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 0x10034f6d
mov al, byte [esi + ecx]
test al, al
je 0x10034f6d
mov byte [ecx], al
inc ecx
dec edx
jne 0x10034f42
dec ecx
add edi, 0xb
add dword [esp + 0x24], 0x1a
mov byte [ecx], dl
mov edx, dword [esp + 0x60]
jmp 0x100351bf
test edx, edx
jne 0x10034f72
dec ecx
add edi, 0xb
mov byte [ecx], 0
add dword [esp + 0x24], 0x1a
mov edx, dword [esp + 0x60]
jmp 0x100351bf
mov eax, dword [esp + 0x68]
mov ebp, 1
mov ebx, dword [eax + 0x95]
cmp dword [esp + 0x60], ebp
jl 0x10035009
jmp 0x10034fa0
mov edi, dword [ebx]
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10034fa7
sub esi, ecx
cmp esi, 0x19
jg 0x1003505d
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 0x10034fe9
mov al, byte [edi]
test al, al
je 0x10034fe9
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x10034fd0
jmp 0x10034fed
test ecx, ecx
jne 0x10034fee
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 0x10034fa0
mov ebx, dword [esp + 0x18]
cmp ebx, 5
jl 0x10035442
mov ebp, dword [esp + 0x58]
cmp ebp, 5
je 0x10035024
cmp ebp, 8
jne 0x10035085
mov esi, 0x100028dc
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035075
mov al, byte [ecx + esi]
test al, al
je 0x10035075
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035032
dec ecx
add edi, 5
add dword [esp + 0x24], 5
mov byte [ecx], dl
mov edx, dword [esp + 0x60]
jmp 0x100351c3
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fbf
jmp 0x100358d5
test edx, edx
jne 0x1003507a
dec ecx
add edi, 5
mov byte [ecx], 0
add dword [esp + 0x24], 5
mov edx, dword [esp + 0x60]
jmp 0x100351c3
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 0x10035115
mov ebp, dword [eax]
push ebp
call fcn.10035ac0
test eax, eax
jne 0x10035181
lea edi, [eax + 1]
cmp ebx, edi
jle 0x100350f9
lea esp, [esp]
mov eax, dword [esi]
mov ecx, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100350e4
test dl, dl
je 0x100350e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100350e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x100350c4
xor eax, eax
jmp 0x100350e9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10035169
inc edi
add esi, 8
cmp edi, ebx
jl 0x100350c0
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 0x100350a5
mov edi, dword [esp + 0x28]
mov ebp, 1
mov ebx, esi
cmp edx, ebp
jl 0x100351bb
mov edi, dword [ebx]
mov esi, edi
lea ecx, [esi + 1]
jmp 0x10035130
mov al, byte [esi]
inc esi
test al, al
jne 0x10035130
sub esi, ecx
cmp esi, 0x19
jg 0x100351f6
mov edx, dword [esp + 0x28]
inc esi
add dword [esp + 0x24], esi
mov ecx, 0x2800
lea eax, [ecx + 0x7fffd7fe]
test eax, eax
je 0x10035199
mov al, byte [edi]
test al, al
je 0x10035199
mov byte [edx], al
inc edi
inc edx
dec ecx
jne 0x10035150
jmp 0x1003519d
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc1
jmp 0x100358d5
mov eax, dword [esp + 0x50]
mov esi, 0xfffffff4
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc0
jmp 0x100358d5
test ecx, ecx
jne 0x1003519e
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 0x10035124
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x18]
cmp ebx, 5
mov ebx, dword [esp + 0x10]
jl 0x10035446
mov eax, edi
sub eax, ebx
sub eax, 0x58
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
cmp eax, 8
ja case.0x100351ef.89
movzx eax, byte [eax + 0x10035a24]
jmp dword [eax*4 + 0x10035a14]
mov eax, dword [esp + 0x50]
mov esi, 0xfffffffe
mov edi, dword [esp + 0x10]
mov dword [eax], 0x3fc2
jmp 0x100358d5
mov eax, 1
cmp edx, eax
jl case.0x100351ef.89
mov byte [edi], al
inc eax
add edi, 2
cmp eax, edx
jle 0x10035217
jmp case.0x100351ef.89
mov edx, 3
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x1c]
cmp eax, 1
jl 0x10035251
mov ecx, dword [esp + 0x6c]
mov edx, eax
jmp 0x10035240
mov al, byte [ecx]
lea ecx, [ecx + 4]
mov byte [edi], al
add edi, 2
dec edx
jne 0x10035240
mov edx, dword [esp + 0x60]
mov ecx, 1
cmp edx, ecx
jl 0x10035271
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 0x10035260
mov ebx, dword [esp + 0x10]
cmp ebp, 3
je case.0x100351ef.89
cmp ebp, 6
je case.0x100351ef.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.0x100352a4
jmp dword [eax*4 + 0x10035a30]
mov esi, 0x100028e4
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100352e0
mov al, byte [ecx + esi]
test al, al
je 0x100352e0
mov byte [ecx], al
inc ecx
dec edx
jne 0x100352c0
dec ecx
add edi, 5
jmp 0x100353c1
test edx, edx
jne 0x100352e5
dec ecx
add edi, 5
jmp 0x100353c1
mov esi, 0x100028ec
mov edx, 0x2800
mov ecx, edi
sub esi, edi
jmp 0x10035300
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x10035320
mov al, byte [ecx + esi]
test al, al
je 0x10035320
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035300
dec ecx
add edi, 7
jmp 0x100353c1
test edx, edx
jne 0x10035325
dec ecx
add edi, 7
jmp 0x100353c1
mov esi, 0x100028f4
mov edx, 0x2800
mov ecx, edi
sub esi, edi
jmp 0x10035340
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x1003535d
mov al, byte [ecx + esi]
test al, al
je 0x1003535d
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035340
dec ecx
add edi, 8
jmp 0x100353c1
test edx, edx
jne 0x10035362
dec ecx
add edi, 8
jmp 0x100353c1
mov esi, 0x100028fc
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100353b9
mov al, byte [ecx + esi]
test al, al
je 0x100353b9
mov byte [ecx], al
inc ecx
dec edx
jne 0x10035375
jmp 0x100353bd
mov esi, 0x10001f34
mov edx, 0x2800
mov ecx, edi
sub esi, edi
lea esp, [esp]
lea eax, [edx + 0x7fffd7fe]
test eax, eax
je 0x100353b9
mov al, byte [ecx + esi]
test al, al
je 0x100353b9
mov byte [ecx], al
inc ecx
dec edx
jne 0x100353a0
jmp 0x100353bd
test edx, edx
jne 0x100353be
dec ecx
add edi, 6
mov esi, dword [esp + 0x20]
mov byte [ecx], 0
cmp esi, 8
je 0x100353d6
cmp esi, 6
jne 0x1003544a
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x1003544a
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 0x1003540b
mov al, byte [esi]
test al, al
je 0x1003540b
mov byte [ecx], al
inc esi
inc ecx
dec edx
jne 0x100353f2
jmp 0x1003540f
test edx, edx
jne 0x10035410
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 0x10035420
sub edx, esi
inc edx
add edi, edx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10035430
mov esi, dword [esp + 0x24]
sub ecx, edx
inc esi
add esi, ecx
jmp 0x1003544e
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.0x1003545a.7
jmp dword [eax*4 + 0x10035a40]
mov ebx, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x50]
jmp 0x1003544e
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x1c]
cmp dword [esp + 0x18], 5
mov dword [esp + 0x60], edx
jl 0x100354ba
inc edx
mov dword [esp + 0x60], edx
jmp 0x100354ba
mov edx, dword [esp + 0x1c]
add edx, 3
mov dword [esp + 0x60], edx
jmp 0x100354ba
cmp byte [esp + 0x30], 3
jne 0x100354a8
mov edx, dword [esp + 0x1c]
add edx, 2
mov dword [esp + 0x60], edx
jmp 0x100354ba
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x1c]
mov dword [esp + 0x60], edx
jmp 0x100354ba
mov edx, dword [esp + 0x60]
sub edi, ebx
movzx eax, di
mov edi, 0x2000
cmp ax, di
jbe 0x100354d0
mov ebx, 0x2800
jmp 0x100354ef
mov edi, 0x1000
cmp ax, di
jbe 0x100354e1
mov ebx, 0x2000
jmp 0x100354ef
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 0x10035523
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 0x1003557f
cmp ecx, 4
jne 0x10035558
cmp byte [esp + 0x30], 3
mov byte [edi + 0x1e], 1
jne 0x1003553a
add dword [esp + 0x14], 0xc
jmp 0x1003553f
add dword [esp + 0x14], 6
cmp dword [esp + 0x18], 5
jge 0x1003554d
mov ecx, 0x22
jmp 0x1003557f
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
add ecx, 0x44
jmp 0x1003557f
cmp dword [esp + 0x18], 5
jge 0x10035566
mov ecx, 0x20
jmp 0x1003557f
test eax, eax
je 0x1003557a
cmp eax, 2
je 0x1003557a
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
add ecx, 0x43
jmp 0x1003557f
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.0x100355b0.1
movzx eax, byte [eax + 0x10035a68]
jmp dword [eax*4 + 0x10035a58]
mov eax, dword [esp + 0x6c]
mov al, byte [eax]
mov byte [edi + 0x23], al
jmp case.0x100355b0.1
lea eax, [edx - 1]
mov byte [edi + 0x23], al
jmp case.0x100355b0.1
mov eax, dword [esp + 0x18]
cmp eax, 5
jl 0x100355d8
dec edx
mov dword [esp + 0x60], edx
mov byte [edi + 0x23], dl
cmp eax, 5
jl case.0x100355b0.1
inc edx
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 0xc]
dec eax
cmp eax, 3
ja case.default.0x100355ee
jmp dword [eax*4 + 0x10035a74]
mov ecx, 0xb7
mov edx, 1
jmp 0x10035625
mov ecx, 0x82
lea edx, [ecx - 0x80]
jmp 0x10035625
mov ecx, 0xf0
mov edx, 2
jmp 0x10035625
mov ecx, 0xa
lea edx, [ecx - 8]
jmp 0x10035625
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 0x20]
mov byte [edi + 0x29], cl
cmp eax, 8
ja case.0x10035635.7
jmp dword [eax*4 + 0x10035a84]
cmp dword [esp + 0x54], 1
jne 0x10035650
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x92]
jmp 0x10035655
mov eax, 0xd4
add eax, edx
add eax, ecx
cmp eax, 0xff
jle 0x10035661
inc eax
mov byte [edi + 0x2c], al
mov byte [edi + 0x2d], 1
jmp case.0x10035635.7
lea eax, [ecx + 0x64]
add eax, edx
jmp 0x10035659
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 0x10035698
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x92]
jmp 0x1003569d
mov eax, 0xd4
add eax, edx
add eax, ecx
cmp eax, 0xff
jle 0x100356a9
inc eax
mov byte [edi + 0x2f], al
jmp case.0x10035635.7
cmp dword [esp + 0x54], 1
jne 0x100356c4
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x91]
mov dword [edi + 0x2c], eax
jmp case.0x10035635.7
mov word [edi + 0x2d], 0xd3d4
cmp dword [esp + 0x18], 5
jl 0x1003578c
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.0x100356ff
movzx eax, byte [eax + 0x10035ab4]
jmp dword [eax*4 + 0x10035aa8]
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.10041510
push eax
call fcn.10034660
lea eax, [edi + 0x64]
push eax
lea eax, [ebp + 1]
push eax
call fcn.10034640
lea eax, [edi + 0x66]
push eax
push dword [esp + 0x3c]
call fcn.10034640
lea eax, [edi + 0x68]
push eax
push dword [esp + 0x40]
call fcn.10034640
lea eax, [edi + 0x6a]
push eax
call fcn.10020f60
movzx eax, ax
push eax
call fcn.10034640
lea eax, [edi + 0x6e]
mov word [edi + 0x6c], 0x101
push eax
push dword [esp + 0x44]
call fcn.10034640
add ebp, 0x13
lea eax, [edi + 0x51]
push eax
lea eax, [esi + ebp*2]
push eax
call fcn.10034660
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 0x100357ab
cmp eax, 4
je 0x100357ab
mov word [edi + 0x3e], 0xf1f
cmp dword [esp + 0x18], 0xb
jge 0x100357b6
mov byte [edi + 0x49], 1
mov eax, dword [ebp + 0x28]
test eax, eax
jns 0x100357df
mov dword [ebp + 0x28], 0
jmp 0x100357eb
lea eax, [edi + 0x51]
push eax
lea eax, [ebp*2 + 0xab]
push eax
call fcn.10034640
jmp case.0x100356ff.7
mov ebp, dword [esp + 0x50]
jmp 0x10035790
cmp eax, 4
jle 0x100357eb
mov dword [ebp + 0x28], 4
cmp ecx, 2
je 0x10035836
cmp ecx, 3
je 0x10035836
mov eax, dword [esp + 0x14]
cmp eax, 0x153
jg 0x10035810
cmp dword [ebp + 0x28], 1
jne 0x10035810
mov ecx, 1
jmp 0x1003589a
cmp eax, 0x2a8
jg 0x10035821
mov ecx, 2
jmp 0x1003589a
cmp eax, 0x3fe
jg 0x1003582f
mov ecx, 3
jmp 0x1003589a
cmp eax, 0x553
jmp 0x1003586f
mov eax, dword [esp + 0x14]
cmp eax, 0x3fa
jg 0x1003584e
cmp dword [ebp + 0x28], 1
jne 0x1003584e
mov ecx, 1
jmp 0x1003589a
cmp eax, 0x7fa
jg 0x1003585c
mov ecx, 2
jmp 0x1003589a
cmp eax, 0xbfa
jg 0x1003586a
mov ecx, 3
jmp 0x1003589a
cmp eax, 0xfa0
jg 0x10035878
mov ecx, 4
jmp 0x1003589a
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 0x100358b6
cmp dword [esp + 0x48], 0
je 0x100358b6
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 0x100358f9
mov dword [ebp], 0x3fc3
mov esi, 0xfffffff0
push dword [esp + 0x2c]
call sub.KERNEL32.dll__lclose
push dword [esp + 0x5c]
call fcn.100419d0
push edi
call fcn.10034320
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.10034320
cmp dword [esp + 0x44], 0
je 0x10035923
push dword [esp + 0x5c]
push ebp
call fcn.10041880
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