Function at 0x10004520
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
sub esp, 0x814
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x82c]
mov al, byte [edi + 0x24]
cmp al, 2
mov dword [esp + 0x20], 0
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], 8
mov byte [esp + 0x17], al
jne 0x10004558
movzx ecx, byte [edi + 0x34]
mov dword [esp + 0x18], ecx
jmp 0x10004560
movzx edx, word [edi + 0x34]
mov dword [esp + 0x18], edx
cmp al, 2
je 0x10004abf
cmp al, 1
je 0x10004abf
test al, al
jne 0x1000566f
movzx ax, byte [edi + 0x26]
lea ecx, [esp + 0x25]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x2c], 0x40
mov dword [esp + 0x18], eax
call fcn.100042c0
mov al, byte [edi + 0x27]
mov bl, 0x30
movzx ecx, al
add esp, 8
dec ecx
cmp ecx, 0x3d
mov byte [esp + 0x27], 0x46
mov byte [esp + 0x28], 0x41
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], 0x38
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0x32
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], 0x46
mov byte [esp + 0x3b], 0x43
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], 0x31
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x31
ja case.0x10004ff9.8
movzx ecx, byte [ecx + 0x10005750]
jmp dword [ecx*4 + 0x10005724]
xor edx, edx
mov dx, word [edi + 0x2c]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x39
mov dword [esp + 0x18], edx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea edx, [esp + 0x52]
push edx
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x54], 0x38
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004681
mov byte [esp + 0x15], cl
lea ecx, [esp + 0x4e]
push ecx
lea edx, [esp + 0x19]
push edx
jmp 0x10004aa0
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x32
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
mov edi, edi
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x100046f0
jmp 0x10004a92
xor ecx, ecx
mov cx, word [edi + 0x2c]
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x39
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
nop
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004750
lea eax, [esp + 0x4e]
mov byte [esp + 0x15], cl
push eax
lea ecx, [esp + 0x19]
push ecx
jmp 0x10004aa0
xor edx, edx
mov dx, word [edi + 0x2c]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x33
mov dword [esp + 0x18], edx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea edx, [esp + 0x52]
push edx
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
lea ecx, [ecx]
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x100047c0
mov byte [esp + 0x15], cl
lea ecx, [esp + 0x4e]
push ecx
lea edx, [esp + 0x19]
push edx
jmp 0x10004aa0
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x32
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
lea ecx, [ecx]
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004830
jmp 0x10004a92
xor ecx, ecx
mov cx, word [edi + 0x2c]
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x31
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
nop
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004890
lea eax, [esp + 0x4e]
mov byte [esp + 0x15], cl
push eax
lea ecx, [esp + 0x19]
push ecx
jmp 0x10004aa0
cmp al, 0x28
mov byte [esp + 0x42], 0x42
mov byte [esp + 0x43], bl
je 0x100048ca
cmp al, 0x29
je 0x100048ca
xor edx, edx
mov dx, word [edi + 0x2c]
mov dword [esp + 0x10], edx
jmp 0x100048d8
xor eax, eax
mov ax, word [edi + 0x2c]
add ax, 0x3e8
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004914
jmp 0x10004a92
cmp al, 0x32
mov byte [esp + 0x42], 0x41
jae 0x10004930
add al, 0x24
jmp 0x10004932
sub al, 2
xor ecx, ecx
mov cx, word [edi + 0x2c]
lea edx, [esp + 0x44]
mov byte [esp + 0x43], al
push edx
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
lea esp, [esp]
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004980
lea eax, [esp + 0x4e]
mov byte [esp + 0x15], cl
push eax
lea ecx, [esp + 0x19]
push ecx
jmp 0x10004aa0
cmp al, 0x3c
mov byte [esp + 0x42], 0x41
jae 0x100049aa
add al, 0x2b
jmp 0x100049ac
add al, 5
xor edx, edx
mov dx, word [edi + 0x2c]
mov byte [esp + 0x43], al
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], edx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea edx, [esp + 0x52]
push edx
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
mov cl, byte [esp + 0x34]
add esp, 0x10
mov eax, 1
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x100049f6
mov byte [esp + 0x15], cl
lea ecx, [esp + 0x4e]
push ecx
lea edx, [esp + 0x19]
push edx
jmp 0x10004aa0
cmp al, 0x1d
lea ecx, [esp + 0x44]
lea edx, [esp + 0x10]
push ecx
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], bl
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], 0x39
push edx
jne 0x10004a41
xor eax, eax
mov ax, word [edi + 0x2c]
add ax, 0x800
shl eax, 4
jmp 0x10004a4b
xor eax, eax
mov ax, word [edi + 0x2c]
shl ax, 4
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
shl si, 4
add esp, 8
lea eax, [esp + 0x4a]
push eax
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], bl
mov dword [esp + 0x18], esi
call fcn.10004300
mov cl, byte [esp + 0x2c]
add esp, 8
mov eax, 1
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, 0x2a
jl 0x10004a88
lea edx, [esp + 0x4e]
push edx
lea eax, [esp + 0x19]
mov byte [esp + 0x19], cl
push eax
call fcn.10004390
add esp, 8
mov byte [esp + 0x50], 0x2a
mov byte [esp + 0x51], 0xd
mov dword [esp + 0x20], 0x2e
jmp 0x10005673
movzx ax, byte [edi + 0x26]
movzx eax, al
cdq
mov ecx, 0xa
idiv ecx
mov bl, 0x30
mov byte [esp + 0x24], 0x40
add dl, bl
movzx eax, al
mov byte [esp + 0x26], dl
cdq
idiv ecx
add dl, bl
cmp dl, 0x39
mov byte [esp + 0x25], dl
jbe 0x10004af4
add dl, 7
mov byte [esp + 0x25], dl
mov al, byte [edi + 0x27]
xor esi, esi
cmp al, 0x28
mov si, word [edi + 0x2c]
mov byte [esp + 0x27], 0x46
mov byte [esp + 0x28], 0x41
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], 0x31
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], 0x32
mov byte [esp + 0x16], al
jne 0x10004b4a
add si, 0x3e8
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.10004300
mov al, byte [edi + 0x34]
add esp, 8
cmp al, 0xa
mov byte [esp + 0x3c], bl
mov byte [esp + 0x15], al
mov cl, al
jae 0x10004b7b
mov dl, cl
add dl, bl
mov byte [esp + 0x3d], dl
jmp 0x10004b85
mov al, byte [esp + 0x15]
add al, 0x37
mov byte [esp + 0x3d], al
cmp byte [esp + 0x17], 2
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x31
mov byte [esp + 0x42], bl
jne 0x10004f75
mov al, byte [esp + 0x16]
cmp al, 0x1d
je 0x10004d6b
cmp al, 0x1e
je 0x10004d6b
movzx ecx, al
dec ecx
cmp ecx, 0x3d
ja case.0x10004ff9.8
movzx ecx, byte [ecx + 0x100057a0]
jmp dword [ecx*4 + 0x10005790]
cmp al, 5
mov byte [esp + 0x2a], 0x38
mov byte [esp + 0x2f], 0x32
mov byte [esp + 0x33], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], 0x46
mov byte [esp + 0x3b], 0x43
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], 0x31
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x32
jne 0x10004c25
mov byte [esp + 0x43], 0x31
jmp 0x10004c5b
cmp al, 1
je 0x10004c57
cmp al, 0x28
je 0x10004c57
cmp al, 2
jne 0x10004c38
mov byte [esp + 0x43], 0x32
jmp 0x10004c5b
cmp al, 4
jne 0x10004c47
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], 0x32
jmp 0x10004c60
cmp al, 3
jne 0x10004c60
mov cl, 0x33
mov byte [esp + 0x42], cl
mov byte [esp + 0x43], cl
jmp 0x10004c60
mov byte [esp + 0x43], bl
mov byte [esp + 0x42], 0x33
cmp al, 0x28
jne 0x10004c75
xor edx, edx
mov dx, word [edi + 0x2c]
add dx, 0x3e8
mov dword [esp + 0x10], edx
jmp 0x10004c7f
xor eax, eax
mov ax, word [edi + 0x2c]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.10004300
mov al, byte [esp + 0x1d]
add esp, 8
cmp al, 0xa
mov byte [esp + 0x48], bl
jae 0x10004ca1
add al, bl
jmp 0x10004ca3
add al, 0x37
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], 0x31
mov byte [esp + 0x4e], bl
jmp 0x10004cd2
mov byte [esp + 0x36], 0x32
sub al, 2
jmp 0x10004cce
mov byte [esp + 0x36], 0x41
add al, 5
mov byte [esp + 0x37], al
mov al, byte [esp + 0x16]
cmp al, 5
je 0x10004cf3
cmp al, 1
je 0x10004cf3
cmp al, 0x28
je 0x10004cf3
cmp al, 2
je 0x10004cf3
cmp al, 3
je 0x10004cf3
cmp al, 4
mov esi, 0x1f
jne 0x10004cf8
mov esi, 0x2b
mov al, byte [edi + 0x35]
test al, al
movzx ebp, si
jne 0x10004d08
mov byte [esp + ebp + 0x24], bl
jmp 0x10004d0d
mov byte [esp + ebp + 0x24], 0x31
mov cl, byte [esp + 0x24]
mov eax, 1
lea edx, [ebp + 1]
cmp edx, eax
jle 0x10004d29
lea ecx, [ecx]
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10004d20
mov al, cl
and al, 0xf
add al, bl
shr cl, 4
cmp al, 0x39
mov byte [esp + ebp + 0x26], al
jbe 0x10004d40
add al, 7
mov byte [esp + ebp + 0x26], al
and cl, 0xf
mov al, cl
add al, bl
cmp al, 0x39
mov byte [esp + ebp + 0x25], al
jbe 0x10004d55
add al, 7
mov byte [esp + ebp + 0x25], al
mov byte [esp + ebp + 0x27], 0x2a
mov byte [esp + ebp + 0x28], 0xd
add ebp, 5
mov dword [esp + 0x20], ebp
jmp 0x10005673
mov dl, byte [0x1000d900]
test dl, dl
je 0x10004e3f
cmp dl, 2
je 0x10004e3f
mov byte [esp + 0x24], 0x40
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], bl
mov byte [esp + 0x27], 0x46
mov byte [esp + 0x28], 0x41
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], 0x38
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0x32
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], 0x34
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x31
mov byte [esp + 0x42], 0x46
mov byte [esp + 0x43], 0x46
mov byte [esp + 0x44], 0x46
mov byte [esp + 0x45], 0x46
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], 0x32
mov byte [esp + 0x48], 0x37
mov byte [esp + 0x49], 0x41
mov byte [esp + 0x4a], 0x2a
mov byte [esp + 0x4b], 0xd
mov dword [esp + 0x20], 0x28
jmp 0x10005673
mov dl, byte [edi + 0x35]
test dl, dl
setne dl
add dl, bl
xor esi, esi
cmp al, 0x1d
mov si, word [edi + 0x2c]
mov byte [esp + 0x2a], 0x38
mov byte [esp + 0x2f], 0x32
mov byte [esp + 0x33], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x3a], 0x46
mov byte [esp + 0x3b], 0x43
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 0x32
mov byte [esp + 0x3f], 0x33
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], 0x31
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], bl
mov byte [esp + 0x49], dl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], 0x39
jne 0x10004ecb
movzx ax, byte [esp + 0x15]
add si, 0x800
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x14]
push edx
shl esi, 4
add esi, eax
jmp 0x10004ef3
cmp al, 0x28
jne 0x10004edf
add si, 0x3e8
movzx ax, cl
shl esi, 4
add esi, eax
jmp 0x10004ee9
movzx cx, cl
shl si, 4
add esi, ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.10004300
mov al, byte [esp + 0x2c]
add esp, 8
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], bl
mov ebp, 1
mov dl, byte [esp + ebp + 0x25]
mov cl, byte [esp + ebp + 0x24]
xor cl, dl
xor cl, byte [esp + ebp + 0x26]
xor cl, byte [esp + ebp + 0x27]
xor cl, al
mov al, byte [esp + ebp + 0x28]
add ebp, 5
xor al, cl
cmp ebp, 0x2e
jl 0x10004f10
mov cl, al
and cl, 0xf
add cl, bl
shr al, 4
cmp cl, 0x39
mov byte [esp + 0x53], cl
jbe 0x10004f4c
add cl, 7
mov byte [esp + 0x53], cl
and al, 0xf
add al, bl
cmp al, 0x39
mov byte [esp + 0x52], al
jbe 0x10004f5e
add al, 7
mov byte [esp + 0x52], al
mov byte [esp + 0x54], 0x2a
mov byte [esp + 0x55], 0xd
mov dword [esp + 0x20], 0x32
jmp 0x10005673
mov cl, byte [esp + 0x16]
movzx eax, cl
add eax, 0xfffffffa
cmp eax, 0x23
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], 0x38
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0x32
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], 0x46
mov byte [esp + 0x3b], 0x43
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], 0x31
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0x32
ja case.0x10004ff9.8
movzx edx, byte [eax + 0x10005808]
jmp dword [edx*4 + 0x100057e0]
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x39
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x54], 0x38
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000507b
movzx edx, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], edx
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005060
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x100050a0
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x100050a0
jmp 0x10005630
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x39
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000512b
movzx edx, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], edx
lea esp, [esp]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005110
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x10005150
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005150
jmp 0x10005630
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x33
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x100051db
movzx edx, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], edx
lea esp, [esp]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x100051c0
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x10005200
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005200
jmp 0x10005630
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x32
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000528b
movzx edx, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], edx
lea esp, [esp]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005270
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x100052b0
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x100052b0
jmp 0x10005630
xor eax, eax
mov ax, word [edi + 0x2c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x32
mov dword [esp + 0x18], eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea eax, [esp + 0x52]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000533b
movzx edx, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], edx
lea esp, [esp]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005320
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x10005360
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005360
jmp 0x10005630
cmp cl, 0x29
mov byte [esp + 0x42], 0x42
mov byte [esp + 0x43], bl
jne 0x1000538c
xor eax, eax
mov ax, word [edi + 0x2c]
add ax, 0x3e8
mov dword [esp + 0x10], eax
jmp 0x10005396
xor ecx, ecx
mov cx, word [edi + 0x2c]
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x14]
push eax
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x100053fb
movzx eax, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], eax
lea ecx, [ecx]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x100053e0
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x10005420
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005420
jmp 0x10005630
xor ecx, ecx
mov cx, word [edi + 0x2c]
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x4a], 0x42
mov byte [esp + 0x4b], 0x31
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x100054ab
movzx eax, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], eax
lea esp, [esp]
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005490
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x100054d0
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x100054d0
jmp 0x10005630
mov al, byte [esp + 0x16]
xor ecx, ecx
mov cx, word [edi + 0x2c]
add al, 0x24
lea edx, [esp + 0x44]
mov byte [esp + 0x43], al
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x4a], 0x41
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000555b
movzx eax, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], eax
mov edi, edi
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x10005540
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
jmp 0x10005580
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005580
jmp 0x10005630
mov al, byte [esp + 0x16]
xor ecx, ecx
mov cx, word [edi + 0x2c]
add al, 0x2b
lea edx, [esp + 0x44]
mov byte [esp + 0x43], al
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x4a], 0x41
mov dword [esp + 0x18], ecx
call fcn.10004300
xor esi, esi
mov si, word [edi + 0x34]
lea ecx, [esp + 0x52]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov dword [esp + 0x20], esi
call fcn.10004300
add esp, 0x10
test si, si
jbe 0x1000560b
movzx eax, word [edi + 0x34]
lea esi, [esp + 0x4e]
lea ebp, [edi + 0x36]
mov dword [esp + 0x10], eax
mov edi, edi
push esi
push ebp
call fcn.10004300
mov eax, dword [esp + 0x18]
add esp, 8
add ebp, 2
add esi, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x100055f0
mov cl, byte [esp + 0x24]
xor esi, esi
mov si, word [edi + 0x34]
movzx ebp, si
shl ebp, 2
mov eax, 1
lea edx, [ebp + 0x2a]
cmp edx, eax
jle 0x10005630
xor cl, byte [esp + eax + 0x24]
inc eax
cmp eax, edx
jl 0x10005627
mov al, cl
and al, 0xf
add al, bl
shr cl, 4
cmp al, 0x39
mov byte [esp + ebp + 0x4f], al
jbe 0x10005647
add al, 7
mov byte [esp + ebp + 0x4f], al
and cl, 0xf
mov al, cl
add al, bl
cmp al, 0x39
mov byte [esp + ebp + 0x4e], al
jbe 0x1000565c
add al, 7
mov byte [esp + ebp + 0x4e], al
mov byte [esp + ebp + 0x50], 0x2a
mov byte [esp + ebp + 0x51], 0xd
add ebp, 0x2e
mov dword [esp + 0x20], ebp
jmp 0x10005673
mov esi, dword [esp + 0x10]
mov cl, byte [esp + 0x17]
cmp cl, 2
jne 0x1000569f
mov al, byte [edi + 0x27]
cmp al, 5
je 0x100056f2
cmp al, 1
je 0x100056f2
cmp al, 0x28
je 0x100056f2
cmp al, cl
je 0x100056f2
cmp al, 4
je 0x100056f2
cmp al, 3
je 0x100056f2
cmp al, 0x1d
je 0x100056f2
cmp al, 0x1e
je 0x100056f2
test cl, cl
jne 0x100056be
mov al, byte [edi + 0x27]
cmp al, 0x1d
je 0x100056be
cmp al, 0x1e
je 0x100056be
mov ecx, dword [esp + 0x18]
lea edx, [ecx*4 + 0x27]
mov dword [edi + 4], edx
jmp 0x10005705
cmp cl, 2
jne 0x100056d7
mov al, byte [edi + 0x27]
cmp al, 0x1d
je 0x100056d7
cmp al, 0x1e
je 0x100056d7
mov dword [edi + 4], 0x1b
jmp 0x10005705
test cl, cl
jne 0x100056f2
mov al, byte [edi + 0x27]
cmp al, 0x1d
je 0x100056e6
cmp al, 0x1e
jne 0x100056f2
movzx eax, si
lea ecx, [eax + eax + 0x27]
mov dword [edi + 4], ecx
jmp 0x10005705
mov dword [edi + 4], 0x27
jmp 0x10005705
mov byte [esp + 0x1e], 0xb
mov byte [esp + 0x1f], 5
mov eax, dword [esp + 0x828]
lea esi, [esp + 0x1c]
mov edi, eax
mov ecx, 0x202
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x814
ret