Function at 0x10004436
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
push ebx
push esi
mov esi, edx
mov edx, ecx
push edi
xor edi, edi
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, edi
movzx ebx, word [esi]
mov dword [ebp - 0xc], ebx
test bx, bx
je 0x1000447d
mov ebx, edx
or ebx, 0x11cb0b8c
inc eax
cmp word [esi + eax*2], di
jne 0x10004463
cmp eax, 0x1fc7
jbe 0x10004483
mov eax, dword [0x1003e590]
xor eax, 0xc5824221
jmp 0x10004489
mov ebx, dword [0x1003e5ec]
imul eax, edx, 0x4fa17049
mov ecx, edi
inc ecx
cmp word [ecx*2 + str.GdipSetPenLineJoin], di
jne 0x1000448b
cmp ecx, 0x233d
jne 0x100044a7
mov eax, ebx
xor eax, 0x7e7e5bec
jmp 0x100044ac
and eax, 0xb5357729
mov dword [0x1003e5ac], eax
mov esi, str.DecodingLookupArray
mov eax, edi
lea edi, [ebp - 0x38]
push 0xa
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc]
cmp si, word [ebp - 0x38]
jne 0x100044f1
movzx edi, si
xor ecx, ecx
mov esi, dword [ebp - 8]
xor edx, edx
test di, di
je 0x100044ee
cmp word [ebp + ecx - 0x38], dx
je 0x100044ee
inc eax
lea ecx, [eax + eax]
movzx edi, word [ecx + esi]
cmp di, word [ebp + ecx - 0x38]
je 0x100044d3
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + eax*2]
movzx eax, byte [ebp + eax*2 - 0x38]
sub ecx, eax
cmp ecx, 0x2224
jne 0x10004537
mov ebx, edx
xor ebx, 0x7a9e8ea1
xor ecx, ecx
mov dword [0x1003e6b4], ebx
mov eax, ecx
inc eax
cmp word [eax*2 + str.wxGetNextButtonInGroup], cx
jne 0x10004519
cmp dword [ebp - 4], eax
jae 0x10004568
mov eax, edx
and eax, 0x9556993f
mov dword [0x1003e5ac], eax
jmp 0x10004568
mov eax, edx
xor eax, 0xba4febd2
xor ecx, ecx
xor ebx, 0x3cb5ae04
inc ecx
cmp byte [ecx + str.4_484_4T4d4h44], 0
jne 0x10004540
mov ebx, dword [0x1003e6b4]
cmp ecx, 0x22e6
jne 0x10004568
and eax, 0xd908d6b8
mov dword [0x1003e558], eax
push 8
pop ecx
mov esi, str.88C8T8Y88h8y8
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
xor eax, eax
movzx eax, cx
cmp ax, word [ebp - 0x30]
jne 0x100045bc
mov esi, dword [ebp - 8]
mov edi, eax
xor eax, eax
xor edx, edx
mov ecx, eax
test di, di
je 0x100045a9
cmp word [ebp + eax - 0x30], dx
je 0x100045a9
inc ecx
lea eax, [ecx + ecx]
movzx edi, word [eax + esi]
cmp di, word [ebp + eax - 0x30]
je 0x1000458e
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 4], ecx
jae 0x100045bc
imul eax, edx, 0x5f905118
mov dword [0x1003e5ac], eax
push 6
pop ecx
mov esi, str..GifComment
lea edi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc]
lea eax, [edx - 0x6fd31e70]
mov dword [0x1003e564], eax
xor eax, eax
movzx ecx, si
cmp cx, word [ebp - 0x28]
jne 0x10004609
mov esi, dword [ebp - 8]
mov edi, ecx
xor ecx, ecx
xor edx, edx
test di, di
je 0x10004606
cmp word [ebp + ecx - 0x28], dx
je 0x10004606
inc eax
lea ecx, [eax + eax]
movzx edi, word [ecx + esi]
cmp di, word [ebp + ecx - 0x28]
je 0x100045eb
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
movzx ecx, byte [ecx + eax*2]
movzx eax, byte [ebp + eax*2 - 0x28]
sub ecx, eax
cmp ecx, 0x4af
jae 0x1000462a
imul eax, edx, 0xa2a07221
mov dword [0x1003e564], eax
mov esi, str.surnadal
lea edi, [ebp - 0x24]
xor eax, eax
push 0x33
mov ecx, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
xor edi, edi
cmp si, word [ebp - 0x24]
jne 0x1000466b
test si, si
je 0x10004668
cmp word [ebp + eax - 0x24], di
je 0x10004668
inc ecx
lea eax, [ecx + ecx]
movzx esi, word [eax + str.3_4_4H4P4X4_4h4p4x4]
cmp si, word [ebp + eax - 0x24]
je 0x1000464a
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
movzx ecx, byte [ecx*2 + str.3_4_4H4P4X4_4h4p4x4]
movzx eax, byte [ebp + eax*2 - 0x24]
sub ecx, eax
cmp ecx, 0xb62
jne 0x10004690
imul eax, ebx, 0xd5b478f3
mov dword [0x1003e558], eax
imul eax, edx, 0xa50ccb0
mov esi, str.Windows_Chinese_Traditional__CP_950__or_Big_5
push 0x17
pop ecx
mov dword [0x1003e5ec], eax
lea eax, [ebx + 0x267e4aa]
mov ebx, edi
mov dword [0x1003e590], eax
lea edi, [ebp - 0x94]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
movzx eax, cx
cmp ax, word [ebp - 0x94]
jne 0x10004720
mov edx, dword [ebp - 8]
xor esi, esi
mov ecx, eax
mov eax, esi
test cx, cx
je 0x100046f1
cmp word [ebp + eax - 0x94], si
je 0x100046f1
inc ebx
lea eax, [ebx + ebx]
movzx ecx, word [eax + edx]
cmp cx, word [ebp + eax - 0x94]
je 0x100046d0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
cmp ecx, ebx
jae 0x10004720
mov eax, edx
and eax, 0xea0b1059
mov dword [0x1003e5ec], eax
cmp ecx, 0x438
jne 0x1000471b
mov eax, edx
and eax, 0xf96ae6a7
mov dword [0x1003e558], eax
inc ecx
cmp ecx, ebx
jb 0x10004707
pop edi
pop esi
pop ebx
leave
ret