Function at 0x4206f2
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e8
call fcn.00408650
mov dword [esp + 0xde8], 0xe330e10c
mov dword [esp + 0xdec], 0xe721e521
mov dword [esp + 0xdf0], 0xfb29f921
mov dword [esp + 0xdf4], 0xff2cfd28
mov dword [esp + 0xdf8], 0xf31ef119
mov dword [esp + 0xdfc], 0xf725f521
mov dword [esp + 0xe00], 0x8b58894d
mov word [esp + 0xe04], 0x8d8c
mov dword [esp + 0xe06], 0
mov word [esp + 0xe0a], 0
xor eax, eax
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xde8]
lea ecx, [eax - 0x31173358]
xor ecx, edx
lea edx, [ecx + ecx]
and edx, 0x88c0016e
xor ecx, 0xf57400b7
mov esi, edx
and esi, ecx
xor edx, ecx
lea edx, [edx + esi*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 0xde8], dl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 0x24
jb case.default.0x41f71d
lea eax, [esp + 0x30]
lea ecx, [esp + 0xde8]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x10], ecx
push ecx
call fcn.0043b230
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x44163c]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x2c]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x50]
call fcn.0043b610
add esp, 0x24
mov ecx, dword [case.0x41f71d.5]
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441654]
xor eax, eax
jmp 0x420dec
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], 0
cmp ecx, dword [esp + 0x2c]
setb al
xor esi, esi
jmp dword [eax*4 + 0x44165c]
mov eax, dword [esp]
mov word [eax], 0
mov eax, dword [esp + 0x40]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x441664]
movzx ebx, word [esp + 0xde8]
xor edi, edi
test bx, bx
je 0x420beb
lea eax, [esp + 0xdea]
mov ecx, ebx
jmp 0x420bbc
inc esi
xor eax, eax
cmp esi, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x44165c]
mov edi, dword [esp + 0x60]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41f7e3
mov eax, 0xffffffff
push eax
call fcn.00408680
add esp, 4
mov ebx, eax
mov dword [esp + 0x5c], edi
lea eax, [esp + 0x5c]
push eax
push ebx
push esi
push dword [esp + 0x3c]
call fcn.0043b360
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44166c]
jmp dword [0x4416cc]
lea eax, [esp + 0x48]
push dword [esp + 0x30]
push 0
push 0x20019
push eax
push ebx
call fcn.0043b230
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441674]
jmp dword [0x4416cc]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x78], 0x39ad3b8f
mov dword [esp + 0x7c], 0x25b82795
mov dword [esp + 0x80], 0x21bf23b5
mov dword [esp + 0x84], 0x2d842fb1
mov dword [esp + 0x88], 0x298e2bb0
mov dword [esp + 0x8c], 0x15811791
mov dword [esp + 0x90], 0x11be1386
mov dword [esp + 0x94], 0x1d871f81
mov dword [esp + 0x98], 0x197a1b81
mov dword [esp + 0x9c], 0x5ad07ab
mov dword [esp + 0xa0], 0x19f0399
mov dword [esp + 0xa4], 0xda70faf
mov dword [esp + 0xa8], 0x9980b9b
mov dword [esp + 0xac], 0x751677a1
mov dword [esp + 0xb0], 0x71e973c9
mov dword [esp + 0xb4], 0x7de37fde
mov dword [esp + 0xb8], 0x79e77bfb
mov dword [esp + 0xbc], 0x65cd67e4
mov dword [esp + 0xc0], 0x61c663f7
mov dword [esp + 0xc4], 0x6df06fd0
mov dword [esp + 0xc8], 0x69c06bfd
mov dword [esp + 0xcc], 0x55c257ff
mov dword [esp + 0xd0], 0x51cf53ff
mov dword [esp + 0xd4], 0x5d195ff4
mov dword [esp + 0xd8], 0x59035b01
mov dword [esp + 0xdc], 0x450b4703
mov dword [esp + 0xe0], 0x4108430e
mov dword [esp + 0xe4], 0x4d124f10
mov dword [esp + 0xe8], 0x49174b13
mov dword [esp + 0xec], 0xb5e9b717
mov dword [esp + 0xf0], 0xb11eb3eb
mov dword [esp + 0xf4], 0xbdf0bfed
mov dword [esp + 0xf8], 0xb9e2bbe4
mov dword [esp + 0xfc], 0xa5f6a7f7
mov dword [esp + 0x100], 0xa1fda3f4
mov dword [esp + 0x104], 0xadf2aff0
mov dword [esp + 0x108], 0xa9f4abe2
mov dword [esp + 0x10c], 0x95cc97e7
mov dword [esp + 0x110], 0x91cb93ce
mov dword [esp + 0x114], 0x9d3a9fca
mov dword [esp + 0x118], 0x9b9c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x78]
lea ecx, [eax + eax]
mov esi, ecx
and esi, 0x56
mov edi, eax
xor edi, 0x7a5d0b2b
add edi, esi
mov esi, edi
and esi, 0x38080d0b
xor edi, 0xbd8add0b
lea ebp, [edi + esi*2]
lea esi, [edi + esi*2]
add esi, 0xd5
lea edi, [edx + edx]
not edi
add edi, edx
and edi, esi
mov ebx, 0x2a
sub ebx, ebp
and ebx, edx
or ebx, edi
add bl, 0xc9
mov byte [esp + eax + 0x78], bl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0xa4
jb 0x41fa20
lea edi, [esp + 0x87a]
lea eax, [esp + 0x78]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
mov ecx, 1
lea edi, [esp + 0x91a]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x41ed47f3
mov dword [esp + 0x7c], 0x4dd043ed
mov dword [esp + 0x80], 0x49d34fdd
mov dword [esp + 0x84], 0xb5e44bd9
mov dword [esp + 0x88], 0xb112b728
mov dword [esp + 0x8c], 0xbd19b309
mov dword [esp + 0x90], 0xb912bf2a
mov dword [esp + 0x94], 0xa523bb29
mov dword [esp + 0x98], 0xa1c6a739
mov dword [esp + 0x9c], 0xad1ea316
mov dword [esp + 0xa0], 0xa9e3af08
mov dword [esp + 0xa4], 0x9538ab37
mov dword [esp + 0xa8], 0x91399706
mov dword [esp + 0xac], 0x9d0e9306
mov dword [esp + 0xb0], 0x99319f22
mov dword [esp + 0xb4], 0x85079b0a
mov dword [esp + 0xb8], 0x8117872f
mov dword [esp + 0xbc], 0x8d268316
mov dword [esp + 0xc0], 0x89258f35
mov dword [esp + 0xc4], 0xf5268b1e
mov dword [esp + 0xc8], 0xf16ff765
mov dword [esp + 0xcc], 0xfd92f36d
mov dword [esp + 0xd0], 0xf951ff4b
mov dword [esp + 0xd4], 0xe567fb65
mov dword [esp + 0xd8], 0xe14fe747
mov dword [esp + 0xdc], 0xed74e34b
mov dword [esp + 0xe0], 0xe98eef45
mov dword [esp + 0xe4], 0xd575eb55
mov dword [esp + 0xe8], 0xd14bd776
mov dword [esp + 0xec], 0xdd4fd34b
mov dword [esp + 0xf0], 0xd971df40
mov dword [esp + 0xf4], 0xc57edb4f
mov dword [esp + 0xf8], 0xc154c774
mov dword [esp + 0xfc], 0xcd6cc351
mov dword [esp + 0x100], 0xc95acf67
mov dword [esp + 0x104], 0x3557cb67
mov dword [esp + 0x108], 0x31873790
mov dword [esp + 0x10c], 0x3dae33af
mov dword [esp + 0x110], 0x39af3fa8
mov dword [esp + 0x114], 0x25af3ba9
mov dword [esp + 0x118], 0x217d2780
mov dword [esp + 0x11c], 0x2d7b237d
mov dword [esp + 0x120], 0x29632f73
mov dword [esp + 0x124], 0x15642b66
mov dword [esp + 0x128], 0x114a1744
mov dword [esp + 0x12c], 0x1d4f1343
mov dword [esp + 0x130], 0x194d1f4f
mov dword [esp + 0x134], 0x5b61b4b
mov dword [esp + 0x138], 0x1440759
mov dword [esp + 0x13c], 0xd5a0358
mov dword [esp + 0x140], 0x95e0f4f
mov dword [esp + 0x144], 0x75590b58
mov dword [esp + 0x148], 0x712a7724
mov dword [esp + 0x14c], 0x7d207332
mov dword [esp + 0x150], 0x79207f3f
mov dword [esp + 0x154], 0x65237b26
mov dword [esp + 0x158], 0x61c2673a
mov dword [esp + 0x15c], 0x6360
mov eax, 0x71
mov ecx, 0x4eae3a8e
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor edx, 0x8e
mov esi, ecx
or esi, 0x71
and esi, edx
mov edx, eax
and edx, 0x8e
or edx, esi
xor dl, byte [esp + eax + 7]
xor dl, 0x71
add dl, 0xcb
mov byte [esp + eax + 7], dl
inc eax
dec ecx
cmp eax, 0x159
jne 0x41fd30
lea edi, [esp + 0x91c]
lea eax, [esp + 0x78]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x15c]
mov ecx, 1
lea edi, [esp + 0xa00]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0xe945eb57
mov dword [esp + 0x7c], 0xed78ef4d
mov dword [esp + 0x80], 0xd147d37d
mov dword [esp + 0x84], 0xd57cd741
mov dword [esp + 0x88], 0xd966db40
mov dword [esp + 0x8c], 0xdd74df69
mov dword [esp + 0x90], 0xc16dc376
mov dword [esp + 0x94], 0xc56dc765
mov dword [esp + 0x98], 0xc99dcb78
mov dword [esp + 0x9c], 0xcd9ccf9d
mov dword [esp + 0xa0], 0x318e339c
mov dword [esp + 0xa4], 0x35ad3781
mov dword [esp + 0xa8], 0x39963ba0
mov dword [esp + 0xac], 0x3daf3fa9
mov dword [esp + 0xb0], 0x219e2391
mov dword [esp + 0xb4], 0x25b02790
mov dword [esp + 0xb8], 0x29802bb5
mov dword [esp + 0xbc], 0x2d822f87
mov dword [esp + 0xc0], 0x11871387
mov dword [esp + 0xc4], 0x15a717ac
mov dword [esp + 0xc8], 0x198e1b8f
mov dword [esp + 0xcc], 0x1d8f1fb4
mov dword [esp + 0xd0], 0x1af038d
mov dword [esp + 0xd4], 0x55907bc
mov dword [esp + 0xd8], 0x9530b51
mov dword [esp + 0xdc], 0xd4b0f53
mov dword [esp + 0xe0], 0x71387346
mov dword [esp + 0xe4], 0x75227720
mov dword [esp + 0xe8], 0x792f7b23
mov dword [esp + 0xec], 0x7d297f2f
mov dword [esp + 0xf0], 0x61c6632b
mov dword [esp + 0xf4], 0x65206735
mov dword [esp + 0xf8], 0x69326b3c
mov dword [esp + 0xfc], 0x6d3e6f2f
mov dword [esp + 0x100], 0x5105533c
mov dword [esp + 0x104], 0x55025700
mov dword [esp + 0x108], 0x590c5b12
mov dword [esp + 0x10c], 0x5d045f1f
mov dword [esp + 0x110], 0x411b4306
mov dword [esp + 0x114], 0x45fa471a
mov dword [esp + 0x118], 0x4b44
xor ecx, ecx
xor edx, edx
nop
nop
nop
mov ebx, edx
not ebx
mov esi, ecx
mov ecx, edx
shr cl, 1
and cl, 1
mov eax, edx
and eax, 0x55
and ebx, 2
imul ebx, eax
or al, 2
mul cl
mov ecx, esi
add al, al
add bl, al
mov eax, ecx
and al, 0xae
sub bl, al
movzx eax, bl
add eax, edx
add al, 0x57
xor al, byte [esp + edx + 0x78]
add al, 0x4d
mov byte [esp + edx + 0x78], al
inc edx
add ecx, 2
cmp edx, 0xa4
jne 0x41ff50
lea edi, [esp + 0xb46]
lea eax, [esp + 0x78]
mov ecx, 0x28
mov ebp, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
lea edi, [esp + 0xbe6]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x13ab11c5
mov dword [esp + 0x7c], 0xef5ced4f
mov dword [esp + 0x80], 0xeb59e95f
mov dword [esp + 0x84], 0xe758e553
mov dword [esp + 0x88], 0xe346e16c
mov dword [esp + 0x8c], 0xff40fd2b
mov dword [esp + 0x90], 0xfb43f946
mov dword [esp + 0x94], 0xf74bf557
mov dword [esp + 0x98], 0xf303f154
mov dword [esp + 0x9c], 0xcf38cd00
mov dword [esp + 0xa0], 0xcb6ec938
mov dword [esp + 0xa4], 0xc74bc513
mov dword [esp + 0xa8], 0xc376c14c
mov dword [esp + 0xac], 0xdf69dd6b
mov dword [esp + 0xb0], 0xdb7ed963
mov dword [esp + 0xb4], 0xd764d504
mov dword [esp + 0xb8], 0xd36cd167
mov dword [esp + 0xbc], 0xaf1aad15
mov dword [esp + 0xc0], 0xab19a915
mov dword [esp + 0xc4], 0xa771a500
mov dword [esp + 0xc8], 0xa32ea12d
mov dword [esp + 0xcc], 0xbf09bd08
mov dword [esp + 0xd0], 0xbb01b90f
mov dword [esp + 0xd4], 0xb77fb510
mov dword [esp + 0xd8], 0xb37db143
mov dword [esp + 0xdc], 0x8f4d8d41
mov dword [esp + 0xe0], 0x8b548956
mov dword [esp + 0xe4], 0x874a8574
mov dword [esp + 0xe8], 0x83718171
mov dword [esp + 0xec], 0x9f6f9d6d
mov dword [esp + 0xf0], 0x9b269969
mov dword [esp + 0xf4], 0x97549567
mov dword [esp + 0xf8], 0x935a9158
mov dword [esp + 0xfc], 0x6f9e6dad
mov dword [esp + 0x100], 0x6b9b6998
mov dword [esp + 0x104], 0x67aa6594
mov dword [esp + 0x108], 0x639061a2
mov dword [esp + 0x10c], 0x7fb07dbd
mov dword [esp + 0x110], 0x7bb579b6
mov dword [esp + 0x114], 0x77d275ba
mov word [esp + 0x118], 0x7170
lea eax, [esp + 0x118]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov eax, 0x995c57c
mov ecx, 0xf66a3a83
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x995c504]
mov esi, edx
not esi
lea ebx, [eax - 0x80000000]
and ebx, 0x658402cb
mov edi, ecx
and edi, 0x9a7bfd34
or edi, ebx
lea esi, [edx + esi*2]
inc esi
xor edi, 0x658402cb
or edi, esi
mov esi, edi
not esi
or edx, eax
or edx, esi
add edx, edi
inc edx
mov esi, edx
and esi, 0x13
xor edx, 0x93
lea edx, [edx + esi*2]
inc dl
mov byte [esp + eax - 0x995c504], dl
inc eax
dec ecx
cmp eax, 0x995c621
jne 0x4201a0
lea edx, [esp + 0xaa4]
lea eax, [esp + 0x78]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
lea edi, [esp + 0xb44]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x33db31e5
mov dword [esp + 0x7c], 0x3fcc3ddf
mov dword [esp + 0x80], 0x3bc939cf
mov dword [esp + 0x84], 0xc728c533
mov dword [esp + 0x88], 0xc326c13c
mov dword [esp + 0x8c], 0xcf20cd1b
mov dword [esp + 0x90], 0xcb23c926
mov dword [esp + 0x94], 0xd73bd537
mov dword [esp + 0x98], 0xd3e3d134
mov dword [esp + 0x9c], 0xdfe8dde1
mov dword [esp + 0xa0], 0xdb3ed9e8
mov dword [esp + 0xa4], 0xe71be533
mov dword [esp + 0xa8], 0xe316e11c
mov dword [esp + 0xac], 0xef19ed1b
mov dword [esp + 0xb0], 0xeb0ee903
mov dword [esp + 0xb4], 0xf704f524
mov dword [esp + 0xb8], 0xf31cf107
mov dword [esp + 0xbc], 0xff0afd15
mov dword [esp + 0xc0], 0xfb09f915
mov dword [esp + 0xc4], 0x87518560
mov dword [esp + 0xc8], 0x837e817d
mov dword [esp + 0xcc], 0x8f798d78
mov dword [esp + 0xd0], 0x8b61897f
mov dword [esp + 0xd4], 0x97af9570
mov dword [esp + 0xd8], 0x93ad91a3
mov dword [esp + 0xdc], 0x9f5d9da1
mov dword [esp + 0xe0], 0x9b549956
mov dword [esp + 0xe4], 0xa79aa594
mov dword [esp + 0xe8], 0xa391a191
mov dword [esp + 0xec], 0xaf9fad9d
mov dword [esp + 0xf0], 0xab46a999
mov dword [esp + 0xf4], 0xb774b587
mov dword [esp + 0xf8], 0xb38ab188
mov dword [esp + 0xfc], 0xbf8ebd7d
mov dword [esp + 0x100], 0xbb8bb988
mov dword [esp + 0x104], 0x477a4574
mov dword [esp + 0x108], 0x43704182
mov dword [esp + 0x10c], 0x4f704d8d
mov dword [esp + 0x110], 0x4b754976
mov dword [esp + 0x114], 0x57b2556a
mov word [esp + 0x118], 0x5150
lea eax, [esp + 0x118]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov eax, 0x74
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 4]
mov ebx, ecx
and ebx, eax
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, eax
add cl, 0xbc
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0x119
jne case.default.0x42047f
lea eax, [esp + 0xa02]
lea esi, [esp + 0x78]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x118]
mov ecx, 1
lea edi, [esp + 0xaa2]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x87a]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x91c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44167c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], 0xb4b58a8b
mov word [esp + 0x7c], 0
mov ecx, 0x667f2a5e
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x667f29e6]
xor edx, ecx
mov esi, edx
and esi, 0x29
xor edx, 0x29
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx - 0x667f29e6], dl
inc ecx
cmp ecx, 0x667f2a64
jne 0x4204b0
mov ecx, dword [0x446f44]
test ecx, ecx
mov esi, dword [esp + 0x4c]
je 0x420b70
mov edx, dword [esp + 0x78]
xor edi, edi
mov ebx, dword [0x446f48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xb62b8d10
je 0x420b64
inc edi
cmp ecx, edi
jne 0x420500
jmp 0x420b70
mov ecx, dword [esp + 0x50]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44167c]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + ecx + 0x64]
mov dword [esp + 0x78], 0x396a3b6c
mov dword [esp + 0x7c], 0x25762768
mov dword [esp + 0x80], 0x21722374
mov dword [esp + 0x84], 0x2d962f70
mov word [esp + 0x88], 0x2b2c
lea ecx, [esp + 0x118]
mov word [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xb
xor dl, byte [esp + ecx + 0x78]
add dl, 0xc9
mov byte [esp + ecx + 0x78], dl
inc ecx
cmp ecx, 0x18
jne 0x420590
movzx ecx, word [eax]
lea esi, [esp + 0xbe8]
test cx, cx
je 0x4205d1
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x4205c0
mov word [esi], 0
movzx eax, word [esp + 0x78]
test ax, ax
je 0x420601
lea ecx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4205f0
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x38], esi
jmp dword [eax*4 + 0x441684]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x441684]
mov word [esi - 2], di
lea eax, [esp + 0x44]
lea ecx, [esp + 0xbe8]
push dword [esp + 0x48]
push 0
push 0x20019
push eax
push ecx
call fcn.0043b230
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44168c]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x58], 0x800
mov dword [esp + 0x28], 0x400
xor ebp, ebp
mov dword [esp + 4], 0
jmp 0x420691
inc ebp
lea eax, [esp + 0x28]
lea edi, [esp + 0x1de8]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x58]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x88]
push eax
push ebp
push dword [esp + 0x5c]
call fcn.0043b8e0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441694]
mov edx, dword [esp + 0x54]
cmp edx, 1
sete cl
test byte [esp + 4], 1
sete al
and al, cl
mov ecx, dword [case.0x420b5d.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x4416ac]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x4416bc]
mov dword [esp + 0x24], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 0xf917fb33
mov dword [esp + 0x10], 0xe577e715
mov dword [esp + 0x14], 0xe170e37f
mov dword [esp + 0x18], 0xedeeef7c
mov word [esp + 0x1c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xc]
lea esi, [ecx + 0x42e8ec2b]
xor esi, eax
lea edx, [esi - 0x4e8c9cd8]
mov eax, edx
xor eax, 0xfe
mov ebx, edx
or ebx, 1
and ebx, eax
mov ebp, 0x4e8c9cd7
sub ebp, esi
mov eax, ebp
not eax
and ebp, 0xec
and edx, 0x13
or edx, ebp
xor edx, 0xed
and eax, 1
or eax, edx
add eax, ebx
mov byte [esp + ecx + 0xc], al
mov eax, ecx
and eax, 1
not ecx
or ecx, 1
sub eax, ecx
mov ecx, eax
cmp eax, 0x11
jbe 0x420750
movzx ebp, word [esp + 0xc]
lea esi, [esp + 0x78]
test bp, bp
je 0x4207fc
lea ecx, [esp + 0x78]
lea ebx, [esp + 0xc]
mov esi, ecx
jmp 0x4207d8
movzx ebp, word [ebx]
test bp, bp
je 0x4207fc
movzx eax, word [ecx]
test ax, ax
je 0x4207fa
add ecx, 2
add ebx, 2
lea edx, [esi + 2]
cmp ax, bp
je 0x4207f2
mov esi, edx
mov ecx, edx
je 0x4207d0
lea ebx, [esp + 0xc]
jmp 0x4207d0
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4416b4]
xor eax, eax
cmp dword [esp + 0x24], 3
sete al
mov ebp, dword [esp + 8]
jmp dword [eax*4 + 0x4416bc]
mov dword [esp + 0xc], 0xb95dbb74
mov dword [esp + 0x10], 0xbd2bbf2d
mov dword [esp + 0x14], 0xb123b335
mov dword [esp + 0x18], 0xb552b726
mov word [esp + 0x1c], 0xabb4
lea eax, [esp + 0x1e]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor dl, 0xdf
add dl, al
xor dl, byte [esp + ecx + 0xc]
add dl, 0xa5
mov byte [esp + ecx + 0xc], dl
inc ecx
add al, 2
cmp ecx, 0x18
jne 0x420860
movzx edi, word [esp + 0xc]
lea eax, [esp + 0x78]
test di, di
je 0x4209c0
lea ecx, [esp + 0x78]
lea edx, [esp + 0xc]
mov eax, ecx
jmp 0x4208ac
movzx edi, word [edx]
test di, di
je 0x4209c0
movzx ebx, word [ecx]
test bx, bx
je 0x4209be
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x4208ca
mov eax, esi
mov ecx, esi
je 0x4208a0
lea edx, [esp + 0xc]
jmp 0x4208a0
mov eax, dword [esp + 0x28]
cmp eax, 2
mov ebp, dword [esp + 8]
jae 0x4208f5
mov esi, dword [esp]
jmp 0x4209a2
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x420947
mov dword [esp + 4], ecx
xor ebx, ebx
lea edi, [esp + 0x1de8]
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edi]
xor ecx, ecx
test si, si
setne cl
lea edi, [edi + ecx*2]
mov word [ebp], si
add ebp, 2
inc ebx
cmp edx, ebx
jne 0x420920
mov dword [esp], ebp
sub eax, ebx
mov ebp, dword [esp + 8]
mov ecx, dword [esp + 4]
cmp ecx, 3
mov esi, dword [esp]
jb 0x4209a2
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea edi, [ebx + ecx*2]
add eax, 0xfffffffc
jne 0x420950
mov word [esi], 0x3a
mov word [esi + 2], 0x20
add esi, 4
mov dword [esp], esi
mov al, 1
mov dword [esp + 4], eax
jmp case.0x420b5d.14
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4416c4]
mov eax, dword [esp + 0x28]
cmp eax, 2
jae 0x4209df
mov edx, dword [esp]
jmp 0x420a84
shr eax, 1
lea esi, [eax - 1]
mov edi, eax
lea ecx, [esp + 0x1de8]
and edi, 3
mov edx, dword [esp]
je 0x420a28
mov dword [esp + 0x24], esi
mov dword [esp + 8], ebp
xor ebx, ebx
nop
movzx esi, word [ecx]
mov ebp, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, ebp
mov word [ebp], si
add edx, 2
inc ebx
cmp edi, ebx
jne 0x420a00
sub eax, ebx
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x24]
cmp esi, 3
jb 0x420a84
nop
nop
nop
mov esi, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [esi], dx
movzx ecx, word [ecx + ebx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], cx
movzx edx, word [ebx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
lea edx, [esi + 8]
lea ecx, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x420a30
mov word [edx], 0xa
add edx, 2
mov dword [esp], edx
mov al, 1
mov dword [esp + 0x40], eax
jmp case.0x420b5d.14
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], 0xb4b58a8b
mov word [esp + 0x10], 0
mov ecx, 0x667f2a5e
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x667f2a52]
xor edx, ecx
mov esi, edx
and esi, 0x29
xor edx, 0x29
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx - 0x667f2a52], dl
inc ecx
cmp ecx, 0x667f2a64
jne 0x420ac0
mov ecx, dword [0x446f44]
test ecx, ecx
je 0x420b20
mov edx, dword [esp + 0xc]
xor edi, edi
mov ebx, dword [0x446f48]
nop
nop
nop
cmp dword [ebx + edi*8], 0xb62b8d10
je 0x420b10
inc edi
cmp ecx, edi
jne 0x420b00
jmp 0x420b20
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x420b32
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x3c]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x38]
jmp dword [eax*4 + 0x441684]
push eax
push 1
push ecx
push dword [0x446f4c]
call fcn.00437050
add esp, 0x10
mov edi, dword [esp + 0x3c]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x38]
jmp dword [eax*4 + 0x441684]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x420b94
nop
nop
nop
nop
mov ebx, dword [esp + 0x34]
jmp dword [0x4416cc]
push ebx
call fcn.00408690
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x44165c]
push eax
push 1
push ecx
push dword [0x446f4c]
call fcn.00437050
add esp, 0x10
mov ebx, dword [esp + 0x34]
jmp dword [0x4416cc]
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x420beb
cmp cx, 0x7f
jbe 0x420bb0
movzx edx, cx
cmp edx, 0x7ff
ja 0x420be0
add edi, 2
jmp 0x420bb1
cmp cx, 0xffff
je 0x420bb1
add edi, 3
jmp 0x420bb1
lea eax, [edi + 1]
push eax
call fcn.00408680
add esp, 4
mov esi, eax
mov dword [esp + 4], eax
test bx, bx
je 0x420d25
mov esi, dword [esp + 4]
test edi, edi
je 0x420d25
lea ebp, [esp + 0xde8]
mov ecx, edi
mov esi, dword [esp + 4]
nop
movzx ebx, bx
lea edx, [ebp + 2]
cmp bx, 0x7f
ja 0x420c40
lea eax, [esi + 1]
mov byte [esi], bl
jmp 0x420cd0
cmp ebx, 0x7ff
ja 0x420c70
cmp ecx, 2
jb 0x420c70
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [esi], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 2]
mov byte [esi + 1], bl
jmp 0x420cd0
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420ceb
cmp ecx, 4
jb 0x420ceb
movzx edx, word [ebp + 2]
add ebp, 4
shl ebx, 0xa
lea eax, [ebx + edx]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [esi], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [esi + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
and dl, 0x3f
or dl, 0x80
lea eax, [esi + 4]
mov byte [esi + 3], dl
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, esi
sub ecx, eax
mov ebp, edx
mov esi, eax
movzx ebx, word [ebp]
test bx, bx
je 0x420d25
test ecx, ecx
jne 0x420c20
jmp 0x420d25
movzx eax, ax
cmp eax, 0xdc00
jne 0x420cf9
mov ebp, edx
jmp 0x420cd8
cmp ecx, 3
jb 0x420d21
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 3]
mov byte [esi + 2], bl
jmp 0x420cd0
mov eax, esi
jmp 0x420cd0
mov byte [esi], 0
mov dword [esp + 0x78], 0x7f7271a1
mov dword [esp + 0x7c], 0x7347467d
mov dword [esp + 0x80], 0x48444641
mov dword [esp + 0x84], 0x4b4b6283
mov dword [esp + 0x88], 0x484d4e4c
mov dword [esp + 0x8c], 0x4844658b
mov dword [esp + 0x90], 0x6e56506e
mov dword [esp + 0x94], 0x475a935f
mov word [esp + 0x98], 0xc154
mov dword [esp + 0x9a], 0
mov byte [esp + 0x9e], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd8
xor cl, byte [esp + eax + 0x78]
add cl, 0xc8
mov byte [esp + eax + 0x78], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x27
jb 0x420da0
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x21fc]
push edi
mov esi, dword [esp + 8]
push esi
push eax
call fcn.00409710
jmp dword [0x4416d4]
push esi
mov esi, eax
call fcn.00408690
mov eax, esi
add esp, 4
and al, 1
add esp, 0x21e8
pop esi
pop edi
pop ebx
pop ebp
ret